fastJson 不使用JavaBean解析复杂json

fastJson 不使用JavaBean解析复杂json

json如下

{
  "data":{
"items":[
  {
    "itemstring":"手机",
    "itemcoord":{"x":0,"y":100,"width":40,"height":20},
  },
  {
    "itemstring":"电脑",
    "itemcoord":{"x":0,"y":100,"width":40,"height":20},
  }
],
    "session_id":"",
  },
  "code":0,
  "message":"OK"
}

此时如果我们想要取到items里面的itemstring,一般的方式是建javabean,但如果数据集字段比较多的情况下javabean还是挺费事的,比如我现在items有50个字段,itemcoord里面又有50个字段,我想要itemcoord里面的width,你就得建两个50成员的javabean,能解析,但挺累的,这里可以解析成List<Map<String,Object>>的数据形式

废话不多说,直接上代码

public static void main(String[] args) {

       /* String url = "http://220.160.52.213:20073/spring-shiro-training/api/open/ent_eval_credit";
        String param="?offset=1&limit=10";
        System.out.println(doPost(url,param));*/

        String json = "{\"data\":{\"items\":[{\"itemstring\":\"手机\",\"itemcoord\":{\"x\":0,\"y\":100,\"width\":40,\"height\":20},},{\"itemstring\":\"电脑\",\"itemcoord\":{\"x\":0,\"y\":100,\"width\":40,\"height\":20},}],\"session_id\":\"\",},\"code\":0,\"message\":\"OK\"}";
        //转换JSONObject对象
        JSONObject jsonObject = JSON.parseObject(json);
        //取出第一层并转换JSONObject对象
        JSONObject dataJsonObject = JSON.parseObject(jsonObject.getString("data"));
        //获取内部的items
        JSONArray list = dataJsonObject.getJSONArray("items");
        //解析成集合类
        String js=JSONObject.toJSONString(list, SerializerFeature.WriteClassName);
        List<Map> collection = JSONObject.parseArray(js, Map.class);
        //将解析出的集合转换成JSON字符串,目的是把List<Map>转成List<Map<String,Object>>
        String collectionJson=JSON.toJSONString(collection);
        List<Map<String,Object>> listObjectFir = (List<Map<String,Object>>) JSONArray.parse(collectionJson);
        System.out.println(listObjectFir.get(0).get("itemstring"));
    }

贴上运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值