2017-05-19 66 views
0

我見過的例子,但我有問題使用它的情況。我認爲我的問題可能是我需要工作的Sand boxed環境。我有一個JSON屬性,可以是單個布爾,也可以是一個Jobjects列表(可能還有更多類型,儘管我還沒有遇到過) 。下面是字符串的例子(顯然有更多的它,但是這是扔我送行的部分)c#JSON屬性是一個bool或一個工作對象和DeSerialization列表

 { 
     "response" : true 
    } 

或者

 { 
     "response" : [ 
      { 
      "Name" : "string1", 
      "Value" : 5, 
      "String" : "5" 
      }, 
      { 
      "Name" : "string2", 
      "Value" : 10, 
      "String" : "10" 
      } 
     ] 
     } 

我只是將立即處理,如果它是一個布爾值,該數組將被傳遞以進一步「處理」。

我想使用最有效的方法,我相信是JSONConverter。有人能指出我正確的方向嗎?歡迎任何幫助/批評。

+1

將其反序列化爲類型爲'JObject'的屬性,然後檢查其屬性並決定是否要反序列化爲布爾值或作爲對象。哦,並抱怨該API的製造商。這很困難。 –

+0

同意。我會嘗試。 – Angryjames

+0

對不起,我的意思是'JToken',然後檢查它的'Type'屬性。 –

回答

0

您可以將數據反序列化爲Dictionary。然後嘗試在字典中反序列化,再次...等等。在這種情況下,您可以控制每個級別中的值的類型作爲響應。好缺)

PS。字典的鍵必須是字符串,並且值必須是對象。這樣更容易。

相關問題