zx18722159706 2017-07-09 15:54 采纳率: 25%
浏览 760
已结题

java怎么写一个serlvet对数据库表返回的json数据按表的某一个字段分类

处理前

 处理前[{"Group":1,"Groupheader":"质量管理","Leftimg":"","Left":"","Min":"","Right":"","Rightimg":""},  
{"Group":1,"Groupheader":"","Leftimg":"","Left":"","Min":"质量巡检","Right":"","Rightimg":""},  
{"Group":2,"Groupheader":"设备管理","Leftimg":"","Left":"","Min":"","Right":"","Rightimg":""},  
{"Group":2,"Groupheader":"","Leftimg":"","Left":"","Min":"设备专业点检","Right":"","Rightimg":""},  
{"Group":2,"Groupheader":"","Leftimg":"","Left":"","Min":"设备日检","Right":"","Rightimg":""},  
{"Group":2,"Groupheader":"","Leftimg":"","Left":"","Min":"设备周检","Right":"","Rightimg":""},  
{"Group":2,"Groupheader":"","Leftimg":"","Left":"","Min":"设备月检","Right":"","R
ightimg":""}];

处理后

 [  
    {  
        "Group": 1,  
        "data": [  
            {  
                "Group": 1,  
                "Groupheader": "质量管理",  
                "Leftimg": "",  
                "Left": "",  
                "Min": "",  
                "Right": "",  
                "Rightimg": ""  
            },  
            {  
                "Group": 1,  
                "Groupheader": "",  
                "Leftimg": "",  
                "Left": "",  
                "Min": "质量巡检",  
                "Right": "",  
                "Rightimg": ""  
            }  
        ]  
    },  
    {  
        "Group": 2,  
        "data": [  
            {  
                "Group": 2,  
                "Groupheader": "设备管理",  
                "Leftimg": "",  
                "Left": "",  
                "Min": "",  
                "Right": "",  
                "Rightimg": ""  
            },  
            {  
                "Group": 2,  
                "Groupheader": "",  
                "Leftimg": "",  
                "Left": "",  
                "Min": "设备专业点检",  
                "Right": "",  
                "Rightimg": ""  
            },  
            {  
                "Group": 2,  
                "Groupheader": "",  
                "Leftimg": "",  
                "Left": "",  
                "Min": "设备日检",  
                "Right": "",  
                "Rightimg": ""  
            },  
            {  
                "Group": 2,  
                "Groupheader": "",  
                "Leftimg": "",  
                "Left": "",  
                "Min": "设备周检",  
                "Right": "",  
                "Rightimg": ""  
            },  
            {  
                "Group": 2,  
                "Groupheader": "",  
                "Leftimg": "",  
                "Left": "",  
                "Min": "设备月检",  
                "Right": "",  
                "Rightimg": ""  
            }  
        ]  
    }  
]  

返回处理前JSON数据的代码


                    Statement stmt = connect.createStatement(); //创建Statement对象
                    String sql;

                    sql = "SELECT * FROM autobrand order by FirstLetter";
                    ResultSet rs = stmt.executeQuery(sql);
                    JSONArray jsonarray = new JSONArray();  
                    JSONObject jsonobj = new JSONObject(); 
                    // 展开结果集数据库
                    while(rs.next()){
                        // 通过字段检索 
                        jsonobj.put("BrandId", rs.getString("BrandId"));  
                        jsonobj.put("FirstLetter", rs.getString("FirstLetter"));  
                        jsonobj.put("Brand", rs.getString("Brand"));
                        jsonobj.put("Logo", rs.getString("Logo"));  

                        jsonarray.add(jsonobj);             
                      }
                    // 输出数据


                    out = response.getWriter();

                    out.println(jsonarray);
                    // 完成后关闭
                    rs.close();   
                    stmt.close();   
                    connect.close();                  
                 }catch (Exception e) { 
                      out.print("get data error!"); 
                      e.printStackTrace(); }

求怎么写一个方法让json数据按FirstLetter分类,写具体代码

  • 写回答

3条回答

  • 骑着蜗牛去爬山 2017-07-10 01:36
    关注

    select FirstLetter,data='['+stuff((select ','+'{"BrandId":"'+t2.BrandId+'","FirstLetter":"'+t2.FirstLetter+'","Brand":"'+t2.Brand+'","Logo":"'+t2.Logo+'"}' from tb t2 where t1.FirstLetter=t2.FirstLetter for xml path('')),1,1,'')+']' from tb t1 group by FirstLetter

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题