2016-02-10 40 views
0

我正在處理的一個項目正在使用Web API返回的異構JSON,我不明白爲什麼Web服務API需要返回不同的對象圖,但這是返回的內容。在C#中處理異構JSON

我的問題是

  1. 是它通常/常見的做法通過相同的API返回不同的對象圖?通過不同的對象圖,我的意思是一個變化複雜的對象,可能有或沒有其他複雜的對象作爲屬性。如果爲每次調用返回相同的屬性(它們的值都是空值或複雜對象),但在響應中完全省略的屬性使得C#類不容易破壞,這似乎是合理的。

  2. 在C#中如何處理JSON異構(de)序列化?反射和運行時代碼生成的首選方法是什麼?或使用動態/ expando對象?

回答

0

是有意義的一些API返回不同的對象時,一些字段恰好是複雜的物體被忽略,因爲它們不有時包含的信息,或端點返回基於不同的參數不同的對象。不確定是否有其他情況。

至於不同的JSON,你必須知道一些關於API返回什麼數據並至少獲得你需要的數據。如果您不完全確定期望或不想爲其創建類,則可以使用Json.NET並反序列化爲classdynamic object

我還建議閱讀API文檔,或使用參數進行某種(邊界?)測試,以確定需要的數據。