2017-03-04 52 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期望一个对象,然后执行检查吗?我对翻新并不熟悉,我会阅读它。 –