首页 > 编程语言 > 详细

Java解析json

时间:2021-04-09 23:35:38      阅读:33      评论:0      收藏:0      [点我收藏+]

项目中经常需要解析前端传来的json

首先导入json的依赖

<dependency>
    <groupId>net.sf.json-lib</groupId>
    <artifactId>json-lib</artifactId>
    <version>2.2.3</version>
    <classifier>jdk15</classifier><!-- 指定jdk版本 -->
    <!--<exclusions>
        <exclusion>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        </exclusion>
    </exclusions>-->
</dependency>

然后用JSONObject.fromObject方法把字符串处理成json
再使用getJSONObject拿到json中的子对象,如果有嵌套就再使用一次
但是如果这个key的数据,是字符串格式的。那么就得先getString然后再fromObject处理成json格式
比如这里的rsource
技术分享图片
如果是数组格式,那么用getJSONArray拿到json数组,一个JSONArray对象jsonArray。
再通过for循环jsonArray.size(),用jsonArray.getJSONObject(i)拿到每个json对象

完整代码如下:

public String mysqlquery(HttpServletRequest request){
        Responemsg responemsg = new Responemsg(); // 只是个处理返回状态的类
        Long rid=Long.parseLong(request.getParameter("id")); // 前端传回来一个id
        try{
            JSONObject obj = JSONObject.fromObject(reportsMapper.getreportdetail(id));
            JSONObject rsource = JSONObject.fromObject(obj.getString("rsource"));
            JSONObject rjson = JSONObject.fromObject(rsource.getJSONObject("rjson"));
            JSONObject canvasData = JSONObject.fromObject(rjson.getJSONObject("canvasData"));
                JSONArray jsonArray = canvasData.getJSONArray("objects");
            for (int i=0; i<jsonArray.size(); i++){ // json数组的长度
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                if (jsonObject.get("label").equals("图表")){
                    responemsg.setCode("200");
                    responemsg.setMsg("操作成功");
                    return new Gson().toJson(responemsg);
                }else{
                    return new Gson().toJson(responemsg);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return new Gson().toJson(responemsg);
}

实践过程中,无意间混合使用了谷歌的gson和net.sf.json的json。然后提示我不可以相互转换。

Java解析json

原文:https://www.cnblogs.com/javaupup/p/14638134.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!