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 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串格式不固定的数据解析思路相关推荐

  1. 自定义拦截器,拦截到了某个请求就返回给前端一个JSON串

    这里通过token进行判断,如果token没有过期,就放行,如果token过期了,那就返回给前端一个失败状态码 /** preHandle:在控制器(controller)前执行,返回值表示是否中断后 ...

  2. 解决VO类属性与要返回的json串字段名称不一样的问题

    结论:解决VO类属性与要返回的json串字段名称不一样的问题,需要用到@JsonProperty("xxx")这个注解 那具体怎么使用呢?下面我拿我个人的例子来说明. 需要返回的j ...

  3. Java—基于Fastjson的JSON串序列化和反序列化模板总结

    关注微信公众号:CodingTechWork,一起学习进步. 介绍 模板需求说明   开发中经常遇到前端传递过来的JSON串的转换,后端需要解析成对象,有解析成List的,也有解析成Map的.   我 ...

  4. Python中读取文件中的json串,并将其写入到Excel表格中

    Json:JavaScript Objective Notation,是一种轻量级的数据交换格式.Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式.现在也常用语http请求中, ...

  5. pythonの鉴黄之路(五)——强行解析json串

    *以下内容并非正规解决方案,效仿请谨慎. 之前有介绍过阿里云的鉴黄API接口http://blog.csdn.net/sm9sun/article/details/53321888 其支持:porn: ...

  6. 《JSON笔记之三》---postman中传入json串

    1.关于如何使用postman工具,简单的介绍一下, 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等 ...

  7. Golang 从 Json 串中快速取出需要的字段

    Golang 从 Json 串中快速取出需要的字段 在 web 编程中很多情况下接口的数据是 json 格式,在我们拿到接口的 json 数据后如何方便地从中提取出需要的字段呢?我们可以自定义一个结构 ...

  8. fastJson 解析一个比较复杂的json串为Java对象

    1. 要解析的json串格式如下: [{"name": "慕容皝","users": [{"username": &qu ...

  9. android的json数据解析,Android数据解析-JSON解析

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,基于JavaScript(Standard ECMA-262 3rd Edition - December ...

  10. 服务器返回文件格式,iOS开发--服务器返回的数据解析

    App要与服务器交互才能达到数据更新和获取资源 那么: 服务器返回客户端的数据,一般返回两种格式:JSON格式.XML格式 (文件下载除外) 什么是JSON 轻量级数据格式,一般用于数据交互 JSON ...

最新文章

  1. BP神经网络公式推导及实现(MNIST)
  2. who killed my time?
  3. arcgis加载天地图_ArcGIS Runtime SDK for Android100.5.0端加载天地图服务
  4. 初学Laravel框架与ThinkPHP框架的不同
  5. Phase2 Day13 MyHashMap
  6. 2019Thinking(上) -- 一个前端开发者的个人思考
  7. MongoDB studio3T 破解
  8. 什么是一条好链?——一定要有自主创新的硬核技术
  9. 带有Lowe’s算法的SIFT特征提取和匹配
  10. IDEA使用Maven构建Spring+SpringMVC+MyBatis整合项目demo成功执行但控制台Tomcat Locahost log输出No Spring WebApplicationIn
  11. ROS发布者(Publisher)和订阅者(Subscriber)的python编程实现(讲解超级详细)
  12. 中国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
  13. 移动 PC 的数据加密工具包 - 安全分析
  14. 算法题-----题目、题解、个人算法、个人思考
  15. 全国计算机二级---公共基础部分知识点(自用总结)
  16. uniapp获取当前的地理位置
  17. mysql主从及高可用3
  18. speex进行音频去噪
  19. execve的使用说明
  20. ISO Country Code - 标准国家码

热门文章

  1. 单机关系型数据库与分布式数据库的区别
  2. 神泣单机服务器维护,神泣单机版
  3. linux dnf配置文件,如何为CentOS 8配置本地Yum/DNF存储库
  4. Linux查看内存占用
  5. 华中数控808系统说明书_国产数控系统的性能水平
  6. 计算机科学与技术的学士服是什么颜色的,学士服颜色分类 各色学士服都有什么讲究...
  7. 第3章-线性概率模型(1)-logistics/probit模型
  8. STM32F0免费版keil下载激活方式
  9. 记一次基于公众号的微信H5开发项目(一)
  10. Micropython——基于PYB的霍尔编码器电机测速与使用