JSON 解析时自动判断是Object还是Array

后端API数据返回有时候是Object有时候有是Array!

解决方案:通过JSONTokener解析,JSONTokener在解析过程中可以自动转换为对应的类型

代码示例如下:

        String json ="{\"scm\":{\"key1\":\"vlaue1\",\"key2\":\"vlaue2\"}}";  
        String json ="{\"scm\":[{\"key1\":\"vlaue1\",\"key2\":\"vlaue2\"},{\"key11\":\"vlaue11\",\"key22\":\"vlaue22\"}]}";  
        JSONObject jsonObject =JSONObject.fromObject(json);  

        Object listArray = new JSONTokener(jsonObject.getString("scm")).nextValue();  
        if (listArray instanceof JSONArray){  
            JSONArray jsonArray = (JSONArray)listArray;  
            for (int k = 0; k < jsonArray.size(); k++) {  
                JSONObject parameterObject = jsonArray.getJSONObject(k);  
            }  
        }else if (listArray instanceof JSONObject) {  
            JSONObject jsonObject3 = (JSONObject)listArray;   
        }  

最后搞定 。

参考:http://blog.csdn.net/xlyrh/article/details/75091353