使用fastjson遇到的一点问题

来源:互联网 发布:上海软件开发培训班 编辑:程序博客网 时间:2024/06/05 01:26
[{        "user_id": 5300,         "flag": 0,         "configs": [            {                "user_id": 5300,                 "config_item_id": 1015,                 "type": 0            },             {                "user_id": 5300,                 "config_item_id": 1016,                 "type": 0            }        ]    }    ]

需要解析的json数据如上
百度搜到的解决方案:
http://bglmmz.iteye.com/blog/2154582

稍微修改了一下:

private static List<HashMap<String, Object>> fromJson2Map(String jsonString) {        List<HashMap<String, Object>> listMap = new ArrayList<>();        JSONArray jsonArrays = JSONArray.parseArray(jsonString);        System.out.println("size = " + jsonArrays.size());        for (int i = 0; i < jsonArrays.size(); i++) {            HashMap jsonMap = JSON.parseObject(jsonArrays.get(i).toString(), HashMap.class);            HashMap<String, Object> resultMap = new HashMap<String, Object>();            for (Iterator iter = jsonMap.keySet().iterator(); iter.hasNext(); ) {                String key = (String) iter.next();                System.out.println("key = " + key);                if (jsonMap.get(key) instanceof JSONArray) {                    JSONArray jsonArray = (JSONArray) jsonMap.get(key);                    List list = handleJSONArray(jsonArray);                    resultMap.put(key, list);                } else {                    resultMap.put(key, jsonMap.get(key));                }            }            listMap.add(resultMap);        }        return listMap;    }    private static List<HashMap<String, Object>> handleJSONArray(JSONArray jsonArray) {        List list = new ArrayList();        for (Object object : jsonArray) {            JSONObject jsonObject = (JSONObject) object;            HashMap map = new HashMap<String, Object>();            for (Map.Entry entry : jsonObject.entrySet()) {                if (entry.getValue() instanceof JSONArray) {                    map.put((String) entry.getKey(), handleJSONArray((JSONArray) entry.getValue()));                } else {                    map.put((String) entry.getKey(), entry.getValue());                }            }            list.add(map);        }        return list;    }

调用:

List<HashMap<String, Object>> jsonMap = fromJson2Map(response.asString());            System.out.println("jsonMap size " + jsonMap.size());            for (HashMap<String, Object> aJsonMap : jsonMap) {                List<HashMap> configDataList = (List<HashMap>) aJsonMap.get("fields");                System.out.println("configDataList size  = " + configDataList.size());                for (HashMap configData : configDataList) {                    String type = (String) configData.get("type");                    if (type.equals("select")) {                        System.out.println("area_code: " + list.get(i).get("area_code") + " city_name: " + list.get(i).get("city_name"));                        System.out.println(configData);                    }                }            }

看来也就只会抄抄改改,也看不懂什么意思。。诶

原创粉丝点击