2017-03-04 151 views
0

我正在使用API​​,其中對象可以是數組,也可以是任何對象,我不知道在哪種情況下它將是對象或數組我不能在某些條件下使用不同的對象庫。如何解析有時是Json對象的對象,有時是json數組

不幸的是我無法訪問API代碼,所以我不能在那裏做任何改變。我必須做的任何技巧都將在客戶端。

那麼處理這種情況的最佳方法是什麼?

編輯:響應示例

. 
. 
    "ecf":"0", 
      "place":{ }, 
      "mn":"1st Test", 
      "teams":[ ], 
      "past_ings":[ 
       { 
        "s":{ }, 
        "d":{ 
        "a":{ 
         "t":{ 
          "i":"5221", 
          "a":"3", 
          "c":"not out", 
          "dt":null, 
          "fd":"0", 
          "bd":"0", 
          "cb":"no", 
          "b":"1", 
          "r":"0", 
          "sr":"0", 
          "four":"0", 
          "six":"0", 
          "name":"Umesh Yadav" 
         } 
        } 
        } 
       } 
. 
. 

目的t可陣列或者它可以是對象。

注意:我正在使用Gson解析並在我的網絡層中使用Retrofit。

回答

1
Object response = json.get("response") 
if (response instanceof JSONArray) { 
    // It's an array, cast it as a JSONArray to use it. 
} else { 
    // It's an object, cast it as a JSONObject to use it. 
} 
+0

我沒有做手動分析。我正在使用Gson並在我的網絡層中進行改造 – user2934930

+0

在這種情況下,難道你不能只告訴Retrofit期望一個對象,然後執行檢查嗎?我對翻新並不熟悉,我會閱讀它。 –