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.
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.