【发布时间】:2016-12-31 19:58:31
【问题描述】:
我是 JSON Schema 的新手,并且读过什么是 JSON Schema 等等。但我不明白如何将 JSON Schema 链接到 JSON 以针对该 JSON Schema 进行验证。谁能解释一下?
任何人都可以用简单的话向我解释一下,我如何将 JSON Schema 链接到 JSON 文件以根据 JSON Schema 检查和验证 JSON 文件数据?
【问题讨论】:
标签: json jsonschema
我是 JSON Schema 的新手,并且读过什么是 JSON Schema 等等。但我不明白如何将 JSON Schema 链接到 JSON 以针对该 JSON Schema 进行验证。谁能解释一下?
任何人都可以用简单的话向我解释一下,我如何将 JSON Schema 链接到 JSON 文件以根据 JSON Schema 检查和验证 JSON 文件数据?
【问题讨论】:
标签: json jsonschema
查看 json.net 标记,我得出的结论是,您打算在 C# 中针对 json 数据进行 JSON 数据验证。
这非常简单/直接。
JsonSchema 对象实例。JObject对象实例。JObject 实例变量的IsValid 方法(将解析的JsonSchema 对象实例作为参数)。此方法调用将返回 bool - true 如果有效,false 如果无效。这里有 2 个完整的例子
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);
// true
JsonSchema schema = JsonSchema.Parse(schemaJson);
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.
更新 1: 看起来架构验证已移出到它自己的库/Nuget 包中。但是请注意,这并不是在商业项目中完全免费使用的(如果这是您的情况)。定价页面有更多信息。
【讨论】: