是否有C#的Json Schema Validator插件?

时间:2016-08-16 21:05:22

标签: c# json nunit

我需要针对以下架构验证JSON:

serializer.Serialize()

有没有人知道.Net Nuget包或可以做到这一点的东西? 我知道POSTMAN使用TinyValidator。但我需要从C#NUnit测试中做到这一点。

1 个答案:

答案 0 :(得分:0)

可以使用Json.NET

完成
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': 'James',
  'hobbies': ['.NET', 'Blogging', 'Reading', 'Xbox', 'LOLCATS']
}");

bool valid = person.IsValid(schema);

如果您需要查看错误消息,请使用此选项:

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

IList<string> messages;
bool valid = person.IsValid(schema, out messages);
// false
// Invalid type. Expected String but got Null. Line 2, position 21.
// Invalid type. Expected String but got Float. Line 3, position 51.

来源:http://www.newtonsoft.com/json/help/html/JsonSchema.htm