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 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable