Json Schema Patterns in .NET - Maps of strings to strongly typed values
![Json Schema Patterns in .NET - Maps of strings to strongly typed values Json Schema Patterns in .NET - Maps of strings to strongly typed values](https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2024/05/header-json-schema-patterns-dotnet-maps-of-strings-to-strongly-typed-values.png)
In this post, we'll explore the common patterns of using unevaluatedProperties in conjunction with C# and JSON Schema to create maps of strings to strongly typed values. This is a powerful technique that allows you to define JSON objects with a flexible structure while still enforcing the expected types of their property values.
The technique involves using the unevaluatedProperties keyword in your JSON Schema to define a pattern that maps any string keys provided in an object to their corresponding strongly typed values. This enables you to construct JSON data that conforms to a schema without necessarily pre-defining all of its keys.
We delve into how to effectively use this pattern in C#, culminating in a fully-functional code sample demonstrating how to create a custom serializer for our expected schema format.
By the end of this post, you will learn how to leverage this powerful technique to build dynamic JSON objects, enforcing strongly typed values for properties while maintaining the flexibility of a schema supporting running system updates with minimal breaking changes.
The post(Json Schema Patterns in .NET - Maps of strings to strongly typed values) appeared first on Endjin.
Published on:
Learn moreRelated posts
Safe JSON Schema Validation with .NET's JsonElement
Learn how Corvus.JsonSchema can be used to maximize the secure utilization of .NET's high-performance JSON parsing. Specifically, System.Text....
.NET JsonElement Error Handling
.NET's System.Text.Json offers very high performance JSON parsing. However, JsonElement's text parsing methods offer a trap for the unwary
How .NET 8.0 boosted JSON Schema performance by 20%
We benchmarked endjin's JSON Schema library on .NET 8.0 and saw large performance gains. There are even more gains to be had with new .NET 8 f...
How .NET 8.0 boosted JSON Schema performance by 20%
When we benchmarked endjin's JSON Schema validation library on .NET 8.0, we were delighted to see substantial performance gains, with no extra...
High Performance JSON Serialization With Code Generation on C# 11 and .NET 7.0
Looking for ways to improve the parsing and generation of JSON data in your .NET applications? This talk showcases how recent features added t...
Ian Griffiths presenting High Performance JSON Serialization with Code Generation on .NET 7.0
Ian Griffiths is presenting at at JetBrains .NET Day Online about JSON Serialization with Code Generation on .NET 7.0
Announcing dynamic JSON in the Azure Core library for .NET
The Azure Core library for .NET now includes the ability to handle dynamic JSON. The new dynamic type enables raw JSON data to be treated as a...
Ian Griffiths presenting at Visual Studio Live! 2022 @ Microsoft HQ
Ian Griffiths is presenting at Visual Studio Live! on the Microsoft Campus about .NET 6.0 Cold Start in the Cloud, Reaqtor and high performanc...
Ian Griffiths presenting at Visual Studio Live! 2022 San Diego
Ian Griffiths is presenting at Visual Studio Live! In San Diego about JSON Serialization with Code Generation on C# 10, Reaqtor, and .NET Cold...
What is a JSON Schema? Intro to JSON
If you're new to JSON, this video provides an introduction to the concept and explains the benefits of using a JSON schema. JSON, or JavaScrip...