【发布时间】:2012-11-21 22:55:21
【问题描述】:
我正在使用 NewtonSoft.JSON 进行一些 JSON 模式验证。我看到如果 JSON 具有比架构中指定的数据更多的数据,则验证将返回“ISValid=true”。代码和数据如下。该模式没有名为“city”的属性的属性定义,传入的 JSON 数据具有该属性和它的值。我希望下面的 IsValid 调用返回 false,但它返回 true。架构或类上是否有设置,例如“强制执行严格”或类似的设置,将强制数据具有架构中指定的所有数据且仅包含架构中指定的数据?
public static void ValidateJsonSchema(string expectedSchema, string actualData)
{
JsonSchema validSchema = JsonSchema.Parse(expectedSchema);
JObject actualJson = JObject.Parse(actualData);
IList<string> messages;
if (!actualJson.IsValid(validSchema, out messages))
{
throw new Exception("Returned data JSON schema validation failed." + messages.ToXml());
}
}
【问题讨论】:
-
你找到这个问题的答案了吗?我也想知道。谢谢。
-
你能更新标签吗?您的问题不依赖于语言,而只依赖于 jsonschema 规范。
标签: json.net jsonschema