dmzhjg 2017-08-30 06:19 采纳率: 100%
浏览 2532
已采纳

JSON数据分组合并,java语言

{
"rows": [
{
"2016-2017jh": 0,
"2016-2017pos": 0,
"2016-2017xj": 0,
"2016-2017zp": 471210,
"2016-2017zz": 0,
"bName": "二中供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 0,
"2015-2016xj": 0,
"2015-2016zp": 0,
"2015-2016zz": 0,
"bName": "保利小学供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 0,
"2016-2017xj": 0,
"2016-2017zp": 194824,
"2016-2017zz": 50797.65,
"bName": "保利小学供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 0,
"2015-2016xj": 0,
"2015-2016zp": 0,
"2015-2016zz": 0,
"bName": "十三中供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 0,
"2016-2017xj": 0,
"2016-2017zp": 1354303.31,
"2016-2017zz": 0,
"bName": "十三中供热站"
},
{
"2013-2014jh": 0,
"2013-2014pos": 4947.33,
"2013-2014xj": 1062.16,
"2013-2014zp": 0,
"2013-2014zz": 0,
"bName": "十局供热站"
},
{
"2014-2015jh": 0,
"2014-2015pos": 1951.1,
"2014-2015xj": 4236.42,
"2014-2015zp": 0,
"2014-2015zz": 0,
"bName": "十局供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 9611.94,
"2015-2016xj": 16457.62,
"2015-2016zp": 0,
"2015-2016zz": 0,
"bName": "十局供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 420508.9,
"2016-2017xj": 756784.75,
"2016-2017zp": 104954.4,
"2016-2017zz": 0,
"bName": "十局供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 0,
"2015-2016xj": 0,
"2015-2016zp": 0,
"2015-2016zz": -208827.6,
"bName": "商检供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 0,
"2016-2017xj": 0,
"2016-2017zp": 0,
"2016-2017zz": 708827.6,
"bName": "商检供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 0,
"2016-2017xj": 0,
"2016-2017zp": 0,
"2016-2017zz": 417565,
"bName": "好运来供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 0,
"2016-2017xj": 38167.37,
"2016-2017zp": 0,
"2016-2017zz": 0,
"bName": "建行宿舍供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 26245.6,
"2015-2016xj": 9423.42,
"2015-2016zp": 0,
"2015-2016zz": 452.41,
"bName": "恒大供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 2466131.85,
"2016-2017xj": 636033.78,
"2016-2017zp": 0,
"2016-2017zz": 57569.38,
"bName": "恒大供热站"
},
{
"2013-2014jh": 0,
"2013-2014pos": 441.77,
"2013-2014xj": 4572.81,
"2013-2014zp": 0,
"2013-2014zz": 0,
"bName": "检察院供热站"
},
{
"2014-2015jh": 0,
"2014-2015pos": 1923.22,
"2014-2015xj": 8381.99,
"2014-2015zp": 0,
"2014-2015zz": 0,
"bName": "检察院供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 5082.01,
"2015-2016xj": 12044.59,
"2015-2016zp": 0,
"2015-2016zz": 0,
"bName": "检察院供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 71014.85,
"2016-2017xj": 163715.61,
"2016-2017zp": 0,
"2016-2017zz": 0,
"bName": "检察院供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 39696.53,
"2015-2016xj": 11353.31,
"2015-2016zp": 0,
"2015-2016zz": 0,
"bName": "盛邦供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 2714461.5,
"2016-2017xj": 851117.69,
"2016-2017zp": 0,
"2016-2017zz": 17265.42,
"bName": "盛邦供热站"
},
{
"2013-2014jh": 0,
"2013-2014pos": 3588.74,
"2013-2014xj": 5033.21,
"2013-2014zp": 0,
"2013-2014zz": 0,
"bName": "石药供热站"
},
{
"2014-2015jh": 0,
"2014-2015pos": 3381.21,
"2014-2015xj": 4418.42,
"2014-2015zp": 0,
"2014-2015zz": 0,
"bName": "石药供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 2474.6,
"2015-2016xj": 4548.11,
"2015-2016zp": 36300,
"2015-2016zz": 0,
"bName": "石药供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 248854.01,
"2016-2017xj": 488956.26,
"2016-2017zp": 0,
"2016-2017zz": 8115.66,
"bName": "石药供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 74623.91,
"2015-2016xj": 20207.59,
"2015-2016zp": 0,
"2015-2016zz": 3049.46,
"bName": "祥云国际供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 2562864.49,
"2016-2017xj": 902804.41,
"2016-2017zp": 0,
"2016-2017zz": 10911.91,
"bName": "祥云国际供热站"
},
{
"2014-2015jh": 0,
"2014-2015pos": 3328.36,
"2014-2015xj": 105.36,
"2014-2015zp": 0,
"2014-2015zz": 0,
"bName": "站前分局供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 2822.81,
"2015-2016xj": 3616.6,
"2015-2016zp": 0,
"2015-2016zz": 0,
"bName": "站前分局供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 52500.95,
"2016-2017xj": 22153.04,
"2016-2017zp": 0,
"2016-2017zz": 3356.5,
"bName": "站前分局供热站"
},
{
"2014-2015jh": 0,
"2014-2015pos": 530.8,
"2014-2015xj": 2764,
"2014-2015zp": 0,
"2014-2015zz": 0,
"bName": "第六干休所供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 1676.69,
"2015-2016xj": 1169.31,
"2015-2016zp": 0,
"2015-2016zz": 0,
"bName": "第六干休所供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 73537.6,
"2016-2017xj": 304322.69,
"2016-2017zp": 0,
"2016-2017zz": 100000,
"bName": "第六干休所供热站"
},
{
"2013-2014jh": 0,
"2013-2014pos": 2482.98,
"2013-2014xj": 0,
"2013-2014zp": 0,
"2013-2014zz": 0,
"bName": "美迪亚供热站"
},
{
"2014-2015jh": 0,
"2014-2015pos": 5175.43,
"2014-2015xj": 953.25,
"2014-2015zp": 0,
"2014-2015zz": 0,
"bName": "美迪亚供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 9452.31,
"2015-2016xj": 3347.78,
"2015-2016zp": 0.02,
"2015-2016zz": 0,
"bName": "美迪亚供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 277220.3,
"2016-2017xj": 156629.97,
"2016-2017zp": 7849.32,
"2016-2017zz": 42000,
"bName": "美迪亚供热站"
},
{
"2013-2014jh": 0,
"2013-2014pos": 4006.85,
"2013-2014xj": 4127.46,
"2013-2014zp": 0,
"2013-2014zz": 0,
"bName": "金世界供热站"
},
{
"2014-2015jh": 0,
"2014-2015pos": 34384.94,
"2014-2015xj": 16307.75,
"2014-2015zp": 251.45,
"2014-2015zz": 0,
"bName": "金世界供热站"
},
{
"2015-2016jh": 0,
"2015-2016pos": 27243.15,
"2015-2016xj": 11901.27,
"2015-2016zp": -2977.57,
"2015-2016zz": -3942.18,
"bName": "金世界供热站"
},
{
"2016-2017jh": 0,
"2016-2017pos": 2225791.08,
"2016-2017xj": 1044820.17,
"2016-2017zp": 23673.65,
"2016-2017zz": 219058.78,
"bName": "金世界供热站"
}
],
"total": 41
}
相同的BName合并为一组

  • 写回答

6条回答

  • 骑风追马 2017-08-30 07:37
    关注

    你如果需要在服务器处理的话,就只能将将该数据转为json对象后取出每一项去判断,然后再把相同的bname项进行合并

     JSONObject parse = JSON.parseObject(dataStr);
            JSONArray rows = parse.getJSONArray("rows");
            Map<String,JSONObject> result = new HashMap<>();
    
            for (int i=0;i<rows.size();i++){
                JSONObject jsonObject = rows.getJSONObject(i);
                String bName = jsonObject.getString("bName");
                if (result.containsKey(bName)){
                    JSONObject o1 = result.get(bName);
                    Iterator<String> iterator = jsonObject.keySet().iterator();
                    while (iterator.hasNext()){
                        String next = iterator.next();
                        if ("bName".equals(next)) continue;
                        o1.put(next,jsonObject.get(next));
                    }
                }else{
                    result.put(bName,jsonObject);
                }
    
            }
    
            System.out.println(result);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器