Click or drag to resize
Json.NET Schema

Validate JSON with JSchemaValidatingReader

 

This sample validates JSON while deserializing an object using JSchemaValidatingReader.

Sample
Types
public class Person
{
    public string Name { get; set; }
    public IList<string> Hobbies { get; set; }
}
Usage
string schemaJson = @"{
  'description': 'A person',
  'type': 'object',
  'properties': {
    'name': {'type':'string'},
    'hobbies': {
      'type': 'array',
      'items': {'type':'string'}
    }
  }
}";

string json = @"{
  'name': 'James',
  'hobbies': ['.NET', 'Blogging', 'Reading', 'Xbox', 'LOLCATS']
}";

JsonTextReader reader = new JsonTextReader(new StringReader(json));

JSchemaValidatingReader validatingReader = new JSchemaValidatingReader(reader);
validatingReader.Schema = JSchema.Parse(schemaJson);

IList<string> messages = new List<string>();
validatingReader.ValidationEventHandler += (o, a) => messages.Add(a.Message);

JsonSerializer serializer = new JsonSerializer();
Person p = serializer.Deserialize<Person>(validatingReader);

Console.WriteLine(p.Name);
// James

bool isValid = (messages.Count == 0);

Console.WriteLine(isValid);
// true