JSON Schema built on the System.Text.Json namespace
$ dotnet add package JsonSchema.NetJsonSchema.Net fully implements the JSON Schema specifications, a declarative syntax for validation and annotating JSON data.
Supported specifications:
http://json-schema.org/draft-06/schema#http://json-schema.org/draft-07/schema#https://json-schema.org/draft/2019-09/schemahttps://json-schema.org/draft/2020-12/schemaThis project also operates as a test bed for features proposed for the next version ("draft/next").
Parse a schema:
var schema = JsonSchema.FromText(content);
Load one from a file:
var schema = JsonSchema.FromFile(filename);
Directly deserialize it:
var schema = JsonSerializer.Deserialize<JsonSchema>(content);
Or build it explicitly in code:
var schema = new JsonSchemaBuilder()
.Comment("a comment")
.Title("A title for my schema")
.Type(SchemaValueType.Object)
.Properties(
("foo", new JsonSchemaBuilder()
.Type(SchemaValueType.String)
),
("bar", new JsonSchemaBuilder()
.Type(SchemaValueType.Number)
)
)
.Build();
Use the schema to evaluate and annotate data:
var instance = JsonNode.Parse("{\"foo\":\"a value\",\"bar\":42}");
var results = schema.Evaluate(instance);