添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

今天遇到一个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返回,希望对大家有所帮助,谢谢。

这里写目录标题集合转json(一下都用 com.alibaba.fastjson包)JSONArray对象循环获取集合某个字段的,set接收list集合根据字段分组jsonArray分组jsonArray根据字段相等过滤出来,返回JSONArray集合筛选对象 如果有返回对象,没有返回null parallelStream(多线程,异步任务) 集合转json(一下都用 com.alibaba.fastjson包) 尽量以集合来获取数据方便后续计算 //jfinal 数据库查询 List<User&
原来数据如下: [{"index_id":"19557485","itemid":"70575","time":"1467619020","value":"1"}, {"index_id":"19557442","itemid":"113795","time":"1467619020","value":"1"}, {"index_id":"19557507","itemid":"114227
// 将相同name的进行分组 for (let i = 0; i < newArr1.length; i++) {//newArr1为原始json数据 // 利用some函数来区分是否相同 !obj.some(item => item.name === newArr1[i].name && item.width === newArr1
var s = '{"身高":"175cm","性别":"男","兴趣":"唱歌","兴趣":"棒球","兴趣":"游泳"}' var kv = {}, m, reg = /"[^"]+":"[^"]+"/gi; var m = s.match(reg); var o={}; for(var i=0;i<m.length;i++){ kv=m[i].ma
数据如下: var data = [{"companyName": "A","orderAmt": 100,"Qty": 1,"spec": "800*600","svg": ""}, {"companyName": "A","orderAmt": 100,"Qty": 1,"spec": "800*600","svg": ""},... a.第一步先把JsonArray转成List<Map<String,Object>> List<Map<String, Object>> listObjectFir = (List<Map<String, Object>>) JSONArray.parse(jsonarray); b.建立一个新的List<Map<String, Object>>来接收新的 List<Map& var arr = [{name: "上海", value: 1},{name: "上海", value: 2},{name: "北京", value: 3},{name: "杭州", value: 2}] 想要得到的json数据 arr = [{name: "上海", value: 3},{name: "北京", value: 3},{name: "杭州", value: 2}] function trans (arr) { let obj = {} let re 字串 :{“scheduler”:[{“type”:“fairScheduler”}],“scheduler”:{“type”:“faier”}} 经转化------&gt; 目标 :{“scheduler”:[{“type”:“fairScheduler”},{“type”:“faier”}]} 普通的jsonObject类,如com.fasterxml.jackson.da...
可以使用Python的循环和条件语句来实现合并字典并相加相同key的value。具体步骤如下: 1. 定义两个字典dict1和dict2,包含相同和不同的key-value对。 2. 创建一个新的字典result,用于存储合并后的字典。 3. 使用for循环遍历dict1和dict2的所有key。 4. 使用if条件语句判断当前key是否已经存在于result字典。 5. 如果key存在于result字典,则将当前key和对应的value添加到result字典。 6. 如果key已经存在于result字典,则将当前key对应的value与result字典的value相加,并更新result字典的value。 7. 最后,输出合并后的字典result。 示例代码如下: ```python dict1 = {'a': 1, 'b': 2, 'c': 3} dict2 = {'b': 3, 'c': 4, 'd': 5} result = {} for key in dict1.keys(): if key not in result: result[key] = dict1[key] else: result[key] += dict1[key] for key in dict2.keys(): if key not in result: result[key] = dict2[key] else: result[key] += dict2[key] print(result) 输出结果为: ```python {'a': 1, 'b': 5, 'c': 7, 'd': 5} 其key为'b'和'c'的value相加后分别为5和7。