Newtonsoft.Json.Schema 4.0.2-beta2

Logo Json.NET Schema

NuGet version (Newtonsoft.Json.Schema) Build status

Json.NET Schema is a powerful, complete and easy to use JSON Schema framework for .NET

Validate JSON

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

Generate Schemas

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;
}

Validate Deserialization

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);

No packages depend on Newtonsoft.Json.Schema.

.NET Framework 3.5

.NET Framework 4.0

.NET Framework 4.5

.NET Standard 2.0

.NET Standard 2.1

Version Downloads Last updated
4.0.2-beta2 1 2025/6/10
4.0.2-beta1 0 2024/9/16
4.0.1 0 2024/6/8
3.0.16 0 2025/9/17
3.0.15 0 2025/6/9
3.0.14 0 2021/2/21
3.0.13 0 2020/1/27
3.0.12 0 2020/1/27
3.0.11 0 2019/4/22
3.0.10 0 2018/3/23
3.0.9 0 2018/3/2
3.0.8 0 2018/3/2
3.0.7 0 2018/2/21
3.0.6 0 2018/2/17
3.0.5 0 2018/1/12
3.0.4 0 2017/9/28
3.0.3 0 2017/8/13
3.0.2 0 2017/7/7
3.0.1 0 2017/6/5
2.0.13 0 2017/5/28
2.0.12 0 2017/5/19
2.0.11 0 2017/4/12
2.0.10 0 2017/3/28
2.0.9 0 2017/3/21
2.0.8 0 2016/12/18
2.0.7 0 2016/10/16
2.0.6 0 2016/9/3
2.0.5 0 2016/8/26
2.0.4 0 2016/7/17
2.0.3 0 2016/7/5
2.0.2 0 2016/1/9
2.0.1 0 2015/12/29
1.0.11 0 2015/8/29
1.0.10 0 2015/8/16
1.0.9 0 2015/6/27
1.0.8 0 2015/2/25
1.0.7 0 2015/2/22
1.0.6 0 2015/2/15
1.0.5 0 2015/2/7
1.0.4 0 2015/1/29
1.0.3 0 2015/1/25
1.0.2 0 2015/1/23
1.0.1 0 2015/1/20