一次后端请求第三方Api接口地址,对于返回Json结果的解析

5 篇文章 0 订阅
4 篇文章 0 订阅

因为最近公司业务需求,需要对接摄像头管理平台第三方Api,所以遇到了很多坑,做个笔记记录一下
第三方api返回数据
上面图片是请求第三方接口返回的数据集合,是一个Json格式的 但是是以集合的形式进行。

获取方法

因为虽然是Json但是他包裹的比较深,而且看到他返回的结果跟集合一样,所以按照他一层一层的进行解析,拿到数据。

JSONObject jsonObject = new JSONObject(res.toString());
//获取第一层
JSONObject A1 = jsonObject.getJSONObject("EasyDarwin");
//获取第二层
JSONObject A2 = A1.getJSONObject("Body");
//获取第三层
JSONArray devices = A2.getJSONArray("Channels");
List list = new ArrayList<>();
if (devices.length() > 0) {
	for (int i = 0; i < devices.length(); i++) {
		JSONObject device = devices.getJSONObject(i);
		Map<String, String> map = new HashMap<>();
		map.put("ChannelID", device.get("ChannelID").toString()); //通道号
		map.put("ChannelType", device.get("ChannelType").toString()); //通道接入类型
		map.put("Name", device.get("Name").toString()); //通道名称
		map.put("IP", device.get("IP").toString()); //通道IP地址
		map.put("Port", device.get("Port").toString()); //通道端口
		map.put("GBDeviceID", device.get("GBDeviceID").toString()); //国标设备IP
		map.put("GBChannelID", device.get("GBChannelID").toString()); //国标通道id
 		list.add(map);
}
 return new Result(true, StatusCode.OK, "查询成功", list);

第二种返回格式

第二种返回格式
可以从上面图中可以看到,返回的数据结构又进行了改变,没有像上面一样有很多层~
实现代码如下:

				JSONObject jsonObject = new JSONObject(res.toString());
                //获取第一层
                JSONObject A1 = jsonObject.getJSONObject("EasyDarwin");
                //获取第二层
                JSONObject devices = A1.getJSONObject("Body");
                list = new ArrayList<>();
                Map<String, String> map = new HashMap<>();
                map.put("ChannelID", devices.get("ChannelID").toString()); //通道ID
                map.put("ChannelName", devices.get("ChannelName").toString()); //通道名称
                map.put("DeviceID", devices.get("DeviceID").toString()); //设备ID
                map.put("DeviceType", devices.get("DeviceType").toString()); //接入协议
                map.put("SnapURL", devices.get("SnapURL").toString()); //快照地址
                map.put("URL", devices.get("URL").toString()); //直播链接
                list.add(map);
            }
            return new Result(true, StatusCode.OK, "查询成功", list);
        }
        return new Result(false, StatusCode.GETDATA_OPERATION_FAIL, "查询失败");

这就是我解析返回Json格式的方法,写博客就是为了做笔记,方便自己以后忘记的时候回来查看,巩固知识点~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值