NewtonSoft.JSONを使用してJSONスキーマの検証を行っています。JSONにスキーマで指定されているデータよりも多くのデータがある場合、検証で「ISValid=true」が返されることがわかります。コードとデータは以下のとおりです。スキーマには「city」と呼ばれるプロパティのプロパティ定義がありません。来るJSONデータにはプロパティとその値があります。以下のIsValid呼び出しはfalseを返すと思いますが、trueを返します。スキーマまたはクラスに「Enforcestrict」などの設定があり、データにスキーマで指定されたすべてのデータのみが含まれるようになりますか?
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());
}
}