Click or drag to resize
Json.NET Schema

Validate with validation error events

 

This sample validates a JObject using the Validate(JToken, JSchema, SchemaValidationEventHandler) extension method and raises an event for each validation error.

Sample
Usage
string schemaJson = @"{
  'description': 'A person',
  'type': 'object',
  'properties': {
    'name': {'type':'string'},
    'hobbies': {
      'type': 'array',
      'items': {'type':'string'}
    }
  }
}";

JSchema schema = JSchema.Parse(schemaJson);

JObject person = JObject.Parse(@"{
  'name': null,
  'hobbies': ['Invalid content', 0.123456789]
}");

IList<string> messages = new List<string>();
SchemaValidationEventHandler validationEventHandler = (sender, args) => messages.Add(args.Message);

person.Validate(schema, validationEventHandler);

foreach (string message in messages)
{
    Console.WriteLine(message);
}
// Invalid type. Expected String but got Null. Line 2, position 21.
// Invalid type. Expected String but got Number. Line 3, position 51.