美文网首页
服务器返回json串格式不固定的数据解析思路

服务器返回json串格式不固定的数据解析思路

作者: 凡客屋 | 来源:发表于2018-11-12 14:02 被阅读0次

         app因为是依赖于后台的,后台说什么就是什么(本来字段应该移动端给定),所以当后台定死了一个接口文档后都直接丢给我们不会与我们讨论解析如何复杂。因此作为强大的客户端开发,要自己去适配解析了。

这里以轻松保价格列表数据为例观察下面json

{

"code": 0,

"message": "success",

"data": {"title": "鸿福e生百万医疗保障计划","insurance_uuid": "bd3791e5-c66c-4702-aa67-7eb44da84c3f","price_list": {"01": {"30day-4year": [{"coverage": 300000000,"pay_amount": 70500,"month_amount": 5900}],

"5year-10year": [{"coverage": 300000000,"pay_amount": 21600,"month_amount": 1850}],}}},

"next": ""

}

{

"code": 0,

"message": "success",

"data": {"title": "鸿福e生百万医疗保障计划","insurance_uuid": "bd3791e5-c66c-4702-aa67-7eb44da84c3f","price_list": {"02": {"30day-4year": [{"coverage": 300000000,"pay_amount": 70500,"month_amount": 5900}],

"5year-10year": [{"coverage": 300000000,"pay_amount": 21600,"month_amount": 1850}],}}},

"next": ""

}

{

"code": 0,

"message": "success",

"data": {"title": "鸿福e生百万医疗保障计划","insurance_uuid": "bd3791e5-c66c-4702-aa67-7eb44da84c3f","price_list": {"man": {"30day-4year": [{"coverage": 300000000,"pay_amount": 70500,"month_amount": 5900}],

"5year-10year": [{"coverage": 300000000,"pay_amount": 21600,"month_amount": 1850}],}}},

"next": ""

}

{

"code": 0,

"message": "success",

"data": {"title": "鸿福e生百万医疗保障计划","insurance_uuid": "bd3791e5-c66c-4702-aa67-7eb44da84c3f","price_list": {"30day-4year": [{"coverage": 300000000,"pay_amount": 70500,"month_amount": 5900}],

"5year-10year": [{"coverage": 300000000,"pay_amount": 21600,"month_amount": 1850}],}},

"next": ""

}

可以发现data里面数据格式不固定,外层和里层都不固定,猛一看到是不是很懵逼,网上所说千篇一律。花了点时间研究了下,再次记录下心得。

解决思路所知分为两种:

1:原生解析jsonobject

思路如下:根据jsonobject.keys方法拿到key的集合。然后遍历这个集合一层层解析就行了

2:如果用的数据解析是第三方比如:gson

因为数据格式不固定,所以我想着在module中都用map接,然后value都用object接,这样第一步数据解析算是完成了(Map<String, Object> priceList)

接下来在数据请求完成后转成自己需要的格式:

Map map = homePriceListBean.priceList;

先拿到map然后根据key拿到对应的object然后把object转成json(new Gson().toJson(map.get(securityValue)))

再把json转成自己需要的格式就可以了:

两层数据:

Map> priceDetailBeanMap = new Gson().fromJson(json,

new TypeToken>>() {

}.getType());

一层数据:

List priceDetailBeanMap =new Gson().fromJson(json,

new TypeToken>() {

}.getType());

相关文章

  • 服务器返回json串格式不固定的数据解析思路

    app因为是依赖于后台的,后台说什么就是什么(本来字段应该移动端给定),所以当后台定死了一个接口文档后都直...

  • Error Domain=NSCocoaErrorDomain

    在AF中默认是以json格式解析字符串,但如果服务器返回的不是json格式的数据,就会报以上错误. 如果以AFHT...

  • JSON 和 XML 解析

    "JSON解析"JSON是一种轻量级的数据格式,服务器返回给客户端的数据一般都是JSON格式或者XML格式。文件下...

  • json解析模版

    请求服务器后,服务器会返回一串json.写的久了摸索了一套解析方式.留下模版 如上.服务固定返回五个数据,其中只有...

  • 王学岗gson解析出错

    解析json一直报错,这个异常Expected ?but was ?,查看了下返回的数据格式,发现服务器返回的数据...

  • 项目中遇到的问题

    数据解析问题: 由于后台返回的数据是一串字符串,而不是JSON格式.所以需要我们自己处理.数据格式是这样的:key...

  • 2017-12-31 ajax的好处

    服务器返回json,实现客户端的无关性 【java控制器接口,如果返回json格式数据,不再只是jsp可以解析,a...

  • 前后端交互

    ajax 返回字符串类型 返回json格式数据类型 不同的是,需要解析 请求方式 GET 和 POST 请求 案例...

  • 网络02

    JSON数据解析: JSON的简单介绍:什么是JSONJSON以一种轻量级的数据格式,一般用来数据交互服务器返回给...

  • 四.AFNetworking请求 get与post

    对服务器返回数据的解析1.AFN可以自动对服务器返回的数据进行解析* 默认将服务器返回的数据当做JSON来解析2....

网友评论

      本文标题:服务器返回json串格式不固定的数据解析思路

      本文链接:https://www.haomeiwen.com/subject/cptcfqtx.html