fastjson合并json数组中相同的某个元素

/**
 * @param array JSON数组
* @param array 需合并后的某个元素名
 */
private static JSONArray mgreArray(JSONArray array, String arrayname) {
        Map<Integer, JSONObject> map = new HashMap<>();
        for (int i = 0; i < array.size(); i++) {
            JSONObject jsonObject = array.getJSONObject(i);
            Integer id = jsonObject.getIntValue("id"); //合并的条件值
            if (map.containsKey(id)) {
                JSONObject tmp = map.get(id);
                JSONArray detailList = tmp.getJSONArray(arrayname);
                detailList.addAll(jsonObject.getJSONArray(arrayname));
            } else {
                map.put(id, jsonObject);
            }
        }
        JSONArray newArray = new JSONArray();
        newArray.addAll(map.values());
        return newArray;
}

 

posted @ 2019-01-11 15:13  秋水秋色  阅读(2176)  评论(0编辑  收藏  举报