如何在反序列化期间验证模式?

时间:2014-05-27 16:13:12

标签: c# json json.net

我有一个项目中几个类的自定义转换器,我想验证他们的模式作为反序列化的一部分。

这感觉它应该非常直接,但我在文档中找不到它。

我可以简单地验证ReadJson第一部分中的架构,或使用JsonValidatingReader,但它似乎应该是转换器本身的一部分,或者显然是API的一部分而不是而不是“自己把它粘在一起”的情况。

我在源代码中看到了JsonContract的一些提及,但目前尚不清楚这是否是我需要的,而在Google上搜索它只会导致JsonContractResolver的一堆结果。 (我不清楚这是什么或为什么我需要它。)如果它在文档中,我找不到它。

我发现这个question/answer说“嘿,你可以做到这一点”,但当然并没有说明如何。

有人这样做过吗?我只是手动完成吗?

编辑以澄清:我知道如何验证,我知道要反序列化。我想一起做。

1 个答案:

答案 0 :(得分:1)

该问题答案中提供的链接显示了如何针对架构进行验证。这是示例代码。

JsonSchema schema = JsonSchema.Parse(schemaJson);

JObject person = JObject.Parse(@"{
  ""name"": ""James"",
  ""hobbies"": ["".NET"", ""Blogging"", ""Reading"", ""Xbox"", ""LOLCATS""]
}");

bool valid = person.IsValid(schema);
// true