请问这种JSON数据怎么解析

新手上路,请多包涵

图片描述

我要解析的是红圈标出来的,就是list里面data里面的数组,我自己用了

                        String data=job.getString("data");                            
                        JSONObject jo = new JSONObject(data);
                        String list = jo.getString("list");
                        JSONObject json = new JSONObject(list);
                        list = jsonTolist(json.getString("data"));

可是报错说of type org.json.JSONArray cannot be converted to JSONObject

请问这种格式的json数据怎么解析呀

阅读 5.5k
10 个回答
✓ 已被采纳新手上路,请多包涵

自问自答吧,解决了

String data=job.getString("data");                            
JSONObject jo = new JSONObject(data);
JSONArray json = jo.getJSONArray("list");
ArrayList<Bean> list = new ArrayList<Bean>();
        for(int i=0; i<json.length(); i++){
             JSONObject entityObj = json.getJSONObject(i);           
             JSONArray entitys = entityObj.getJSONArray("data");
             for(int j=0; j<entitys.length(); j++){
                Bean item = new Bean();
                JSONObject object = entitys.getJSONObject(j);
                item.setId(object.getInt("id"));
                item.setName(object.getString("name"));
                item.setPic(object.getString("pic"));
                list.add(item);
                            }      
                        }

不是已经爆出错误了吗,JSONObject json = new JSONObject(list);转化失败应该是转化成jsonARRay

如果数据格式可以确定的话,可以构造一个Java对象,然后就可以借助FastJSON之类的工具无痛解析了...

包了一个数组而已

forEach( ) 一层一层遍历进去不行吗?

新手上路,请多包涵

使用AS 插件 GsonFormat 生成一个javabean , 再使用Gson

json.data.list.data 不就行了。。。。

新手上路,请多包涵

报错已经很明确了,list是一个数组

新手上路,请多包涵

"[]"碰见这个符号就用JSONArray;碰见"{}"就用JSONObject;

推荐问题