奇葩json结构解析--key是数字的json处理
json结构如下:
{
"ret": "ok",
"data": {
"57230": {
"cat_id": "57230",
"alpha": "",
"title": "一汽-大众奥迪",
"malpha": "Y",
"catpid": "57229",
"catType": "2",
"child": [
{
"cat_id": "57233",
"alpha": "A",
"title": "奥迪Q5",
"malpha": null,
"catpid": "57230",
"catType": "3",
"Priced": false
},
{
"cat_id": "126193",
"alpha": "A",
"title": "奥迪Q3",
"malpha": null,
"catpid": "57230",
"catType": "3",
"Priced": false
},
{
"cat_id": "126537",
"alpha": "A",
"title": "奥迪A3",
"malpha": null,
"catpid": "57230",
"catType": "3",
"Priced": false
},
{
"cat_id": "57231",
"alpha": "A",
"title": "奥迪A4L",
"malpha": null,
"catpid": "57230",
"catType": "3",
"Priced": false
},
{
"cat_id": "57232",
"alpha": "A",
"title": "奥迪A6L",
"malpha": null,
"catpid": "57230",
"catType": "3",
"Priced": true
}
]
},
"success": true
}
}
"data"下面的数字部分是个list,结构相同,但是数字可能会发生变化,因为公司业务原因,不可能在后台统一数字部分的内容,这种结构遂蛋疼。不能直接利用gson这种直接去处理,gsonformat生成也会parse err。
但是活得干,问题得解决,如何解决呢:
如下就是解决方式,注意红色部位,然后就可以处理数字对应的valuse的内容,利用gson去解析:
if ( !isNull( response ) )
{
try {
JSONObject jsonObject0 = new JSONObject(
response.trim() );
JSONObject jsonObject = new JSONObject(
JsonUtil.getString( jsonObject0, "data" ) );
boolean isSuccess = JsonUtil.getBoolean( jsonObject,
"success" );
childEntities.clear();
if ( isSuccess )
{
Iterator<?> keys = jsonObject.keys();
while ( keys.hasNext() )
{
String key = (String) keys.next();
if ( jsonObject.get( key ) instanceof JSONObject )
{
String content = jsonObject.get( key )
.toString();
PriceManagerResult.DataEntity.ChildEntity
childEntity = Json.get()
.toObject( content,
PriceManagerResult.DataEntity.ChildEntity.class );
childEntities.add( childEntity );
}
}
}
KLog.i( childEntities.size() );
mPriceManagerAdapter2.notifyDataSetChanged();
} catch ( JSONException e ) {
e.printStackTrace();
}
}
奇葩json结构解析--key是数字的json处理的更多相关文章
- 多叉树结构:JSON数据解析(一)
多叉树结构:JSON数据解析(一) 最近做一个实时数据搜索引擎的项目中,在项目架构的偏顶层需要写一个JSON数据解析的模块,由于目前JSON解析没有现成统一开源框架可以利用,目前只是手工利用com.a ...
- iOS - JSON 数据解析
iOS - JSON 数据解析 前言 NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- Json字符串解析原理、超大json对象的解析
概述 附上完整的代码:https://pan.baidu.com/s/1dEDmGz3(入口类是Json)JSON:JavaScript 对象表示法(JavaScript Object Notatio ...
- 【spark】文件读写和JSON数据解析
1.读文件 通过 sc.textFile(“file://") 方法来读取文件到rdd中. val lines = sc.textFile("file://")//文件地 ...
- com.alibaba.fastjson和org.json遍历获取key
推荐都是用fastjson.org.json好像不支持序列化. com.alibaba.fastjson遍历获取key的方法: //fastjson解析方法 for (Map.Entry<Str ...
- JSON在线解析及格式化校验工具 jsonin.com
JSON在线解析及格式化校验工具 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.它是基 ...
- 校验字符串是否是JSON格式,将不规则展示的json格式的字符串进行规则展示(json格式化)
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] var str = {"code": "","svcname" ...
- 使用Gson轻松解决复杂结构的Json数据解析
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50961803 JSON简介 JSON(JavaScript Object Notati ...
随机推荐
- AxeSlide软件项目梳理
先介绍一下我负责的软件项目 AxeSlide斧子演示,估计大部分人没有听说过,但国外有一款叫Prezi的软件,应该有一部分人使用过. 这是我们产品的官网http://www.axeslide.com/ ...
- 通过python为zabbix发送告警邮件
最近部署ZABBIX的邮件告警时,用刚学的python来写告警邮件脚本. 由于时间有限,我只对关键步骤做截图,对zabbix的基本配置略过. python代码如下 1 #!/usr/bin/pytho ...
- android浏览器 源码共享
浏览器源码共享 [天天浏览器]拥有极为精简的内核,手机App大小在2MB以内,是市场上极省用户手机内存,极少占用手机资源,速度极快的浏览器,本身功能完整强大,是极速上网必备的利器. 源代码下载地址:h ...
- Composer入门
摘要 本文介绍Composer的入门知识,包括require和autoload部分. Java有Maven, Node.js有npm, ROR有gem, 这些语言的程序员在开心地使用包管理工具加速开发 ...
- Jmeter之基本介绍
初学Jmeter,以下是我常用的功能,总结一下. 1.Thread Group线程组 线程组,即:虚拟用户组
- PopupWindow 的使用
//contentView : 气泡显示的内容 //width ,height : 宽高 PopupWindow popupWindow = new PopupWindow(contentView, ...
- netty中级篇(2)
上一篇 netty入门篇(1) 一.编码解码技术 如何评价一个编解码技术: 是否支持跨语言,或者说支持的语言是否丰富 编码码流大小,影响传输速度 编码和解码的性能,即时间 类库是否精致,API是否方便 ...
- CODE[VS]-保留两位小数-浮点数处理-天梯青铜
题目描述 Description 保留两位小数输出一个浮点数. 输入描述 Input Description 一个浮点数.double范围内 输出描述 Output Description 保留两位小 ...
- MQTT协议之 Apache Apollo服务
一.说明 MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网) ...
- easy-ui 有依赖关系的下拉列表(省市区县)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...