我正在使用NewtonSoft.JSON來執行一些JSON模式驗證。我看到如果JSON具有的附加數據超出了架構中指定的數據,那麼驗證返回「ISValid = true」。代碼和數據如下。該架構沒有名爲「城市」的屬性的屬性定義,即將到來的JSON數據具有該屬性和值。我期望下面的IsValid調用返回false,但它返回true。在架構上或者在諸如「Enforce strict」之類的類上是否存在一個設置,這些設置將強制數據僅包含模式中指定的數據?JSON.Net模式驗證不標記其他屬性?
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規範。 –