Json.NET Schema is a complete and easy-to-use JSON Schema framework for .NET
$ dotnet add package Newtonsoft.Json.SchemaJson.NET Schema is a powerful, complete and easy to use JSON Schema framework for .NET
JSchema schema = JSchema.Parse(@"{
'type': 'object',
'properties': {
'name': {'type':'string'},
'roles': {'type': 'array'}
}
}");
JObject user = JObject.Parse(@"{
'name': 'Arnie Admin',
'roles': ['Developer', 'Administrator']
}");
bool valid = user.IsValid(schema);
// true
JSchemaGenerator generator = new JSchemaGenerator();
JSchema schema = generator.Generate(typeof(Account));
// {
// "type": "object",
// "properties": {
// "email": { "type": "string", "format": "email" }
// },
// "required": [ "email" ]
// }
public class Account
{
[EmailAddress]
[JsonProperty("email", Required = Required.Always)]
public string Email;
}
JSchema schema = JSchema.Parse(@"{
'type': 'array',
'item': {'type':'string'}
}");
JsonTextReader reader = new JsonTextReader(new StringReader(@"[
'Developer',
'Administrator'
]"));
JSchemaValidatingReader validatingReader = new JSchemaValidatingReader(reader);
validatingReader.Schema = schema;
JsonSerializer serializer = new JsonSerializer();
List<string> roles = serializer.Deserialize<List<string>>(validatingReader);