2010-04-22 120 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