fastjson取值,取出想要的字段添加给实体对象

fastjson确实很好用,废话不多说,上代码:

我需要提取的json数据:需要获取json的部分字段赋值给实体对象,并存入数据库。

{
    "code": "0",
    "data": {
        "lives": [
            {
                "liveType": 1,
                "coverUpdate": 90,
                "streams": [
                    {
                        "coverUrl": "http://livecloudpic.lechange.cn/LCO/6G00A43PAG63E49/0/0/20201207Tc6fbf1b4efa714b.jpg",
                        "streamId": 0,
                        "hls": "https://cmgw-vpc.lechange.com:8890/LCO/6G00A43PAG63E49/0/0/20201207T110025/eb0df407b58120b41cb.m3u8?proto=https"
                    },
                    {
                        "coverUrl": "http://livecloudpic.lechange.cn/LCO/6G00A43PAG63E49/0/0/20201207T110025/e20b41c6fbf1b4efa714b.jpg",
                        "streamId": 1,
                        "hls": "https://cmgw-ge.com:8890/LCO/6G00A43PAG63E49/0/1/20201207T110025/eb0df407b58120b41c6fbf1b4efa714b.m3u8?proto=https"
                    },
                    {
                        "coverUrl": "http://livecloudpic.lechange.cn/LCO/6G00A43PAG63E49/0/0/20201207T110025/0b41c6fbf1b4efa714b.jpg",
                        "streamId": 0,
                        "hls": "http://cmgw-vpc.lechange.com:8888/LCO/6G00A43PAG63E49/0/0/20201207T110025/eb0df407b5bf1b4efa714b.m3u8"
                    },
                    {
                        "coverUrl": "http://livecloudpic.lechange.cn/LCO/6G00A43PAG63E49/0/0/20201207T110025/eb0df407b58120b41c6fbf1b4efa714b.jpg",
                        "streamId": 1,
                        "hls": "http://cmgw-vpc.lechange.com:8888/LCO/6G00A43PAG63E49/0/1/20201207T1100bf1b4efa714b.m3u8"
                    }
                ],
                "liveToken": "f4b5d61806b96ba2d3ef3f9d8ac",
                "job": [
                    {
                        "period": "always",
                        "status": true
                    }
                ],
                "deviceId": "6G00A43E49",
                "liveStatus": 1,
                "channelId": "0"
            }
        ],
        "count": 1
    },
    "errMsg": "",
    "success": true
}

json中数组对象,对象里面又嵌套数组。java后端解析代码;其中result是json字符串。

        String results = sbf.toString();
        //JSON字符串转换成JSON对象
        JSONObject json_o = JSONObject.parseObject(results);
        //得到data的json对象
        JSONObject jsondata = JSON.parseObject(json_o.getString("data"));
        System.out.println(jsondata);
        //得到data中的lives对象,并用jsonarr保存
        JSONArray jsonarr = jsondata.getJSONArray("lives");
        //使用for循环遍历datalist里的json值,如:price,ISBN
        for(int i = 0;i<jsonarr.size();i++){
            LiveCameraEntity liveCameraEntity=new LiveCameraEntity();
            JSONObject jsonb = jsonarr.getJSONObject(i);
            liveCameraEntity.setChannelId(jsonb.getString("channelId"));
            liveCameraEntity.setDeviceId(jsonb.getString("deviceId"));
            //streams数组的处理
            JSONArray jsonArray6=jsonb.getJSONArray("streams");
            JSONObject jsonarr1 = jsonArray6.getJSONObject(1);
            System.out.println("3333333333333333333333333"+jsonarr1);
            liveCameraEntity.setCoverUrl(jsonarr1.getString("coverUrl"));
            liveCameraEntity.setStreamId(jsonarr1.getInteger("streamId"));
            liveCameraEntity.setHls(jsonarr1.getString("hls"));
            //job数组的处理
            JSONObject jsonarr2=jsonb.getJSONArray("job").getJSONObject(0);
            liveCameraEntity.setPeriod(jsonarr2.getString("period"));
            liveCameraEntity.setStatus(jsonarr2.getBoolean("status"));
            baseMapper.insert(liveCameraEntity);
            System.out.println("11111111111111111111111"+liveCameraEntity+"6666666666666666666666");

其中result是json字符串。

总结:不要怕,不要怂,耐着性子,干着干着就出来了。

我搜了很多博客,感觉最好的两篇:https://www.cnblogs.com/ioioi/p/9437096.html

https://www.cnblogs.com/ibigboy/p/11124524.html#_label4

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

only-qi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值