今天遇到一个json中key重复的要去重,值要相加的一个问题,故来记录一下:
Map<String, Integer> map = new HashMap<String, Integer>();
for (Object object : jsonArray) {
JSONObject jsonObject = (JSONObject) object;
String name = (String) jsonObject.get("belongdepname");
Integer num = Integer.valueOf((String) jsonObject.get("tasknum"));
if (map.containsKey(name)) {
int integer = map.get(name);
map.put(name, integer + num);
} else {
map.put(name, num);
}
}
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
for (Map.Entry<String, Integer> entry : entrySet) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("belongdepname", entry.getKey());
jsonObject.put("tasknum", String.valueOf(entry.getValue()));
jsonArray1.add(jsonObject);
}
上面的jsonArray为原来重复的json返回,jsonArray1为去重相加后的json返回,希望对大家有所帮助,谢谢。