2010-04-22 119 views
7

我有传入的消息,我需要尝试解析我自己的对象结构。这些都是格式良好的JSON对象,有些只是无稽之谈。使用JSON.Net验证JsonConvert.DeserializeObject(认为“尝试解析”)的结果

我用JsonConvert.DeserializeObject<MyObject>(incmoingString);来做到这一点。然而,这有时会给我一个例外,当传入是完全垃圾。其他时候,当传入的字符串没有问题时,我会得到一个不完整的对象结构 - 最后它有时会起作用。

我已经将try/catch中的转换封装了,并且手动验证了我已经获得了需要反序列化结果的属性。

有没有更好的方法来做到这一点?

+1

可能不会,除非'转换器'允许您将类似'XmlSerializer'的事件附加到未解析的实体/属性。 – leppie 2010-04-22 11:19:05

回答

4

Json.NET支持JSON Schema。您可以创建一个具有所有必需属性的模式,并在反序列化之前验证传入的JSON。

+2

你会如何做到这一点? – Zoltan 2014-03-13 21:11:18

+2

有没有办法验证模式是有效的JSON? – Jordan 2015-04-09 19:32:46