Click or drag to resize

Validate with validation error events


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

Caution note Caution

Obsolete. JSON Schema validation has been moved to its own package. See for more details.

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

JsonSchema schema = JsonSchema.Parse(schemaJson);

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

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

person.Validate(schema, validationEventHandler);

foreach (string message in messages)
// Invalid type. Expected String but got Null. Line 2, position 21.
// Invalid type. Expected String but got Float. Line 3, position 51.