我正在使用 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());
}
}