奇葩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 ...
随机推荐
- 配置 Ionic环境
本博客只适合win7 系统 准备 必须要有 注意了!!!! //注意所以路径均不支持中文 1.安装JSK (jsva环境) 默认安装位置 如果是32位操作系统 需要安装32bit版的JDK C:\ ...
- C#_单例模式
单例:在程序的整个进程中只会被实例化一次 如:User user =new User();实例化一个User();的时候new User()是调用的 User类的 默认的公有构造函数:public U ...
- Spring实战——通过Java代码装配bean
上篇说的是无需半行xml配置完成bean的自动化注入.这篇仍然不要任何xml配置,通过Java代码也能达到同样的效果. 这么说,是要把上篇的料拿出来再煮一遍? 当然不是,上篇我们几乎都在用注解的方式如 ...
- 标签<a>的注意事项1
使用a标签时,其子元素可以为其他元素,但是不能包含<a>标签,否则会造成布局改变! 因此请尽量不要在a标签里放太多子元素,可以在外层套一个div,其他子元素放在a标签同级下. 正确布局: ...
- CSS3中盒子的box-sizing属性
box-sizing 属性 box-sizing 属性用来改变默认的 CSS盒模型 对元素宽高的计算方式.这个属性可以用于模拟那些非正确支持标准盒模型的浏览器的表现. box-sizing:conte ...
- YUM变量
有一个简单的python命令可以看到yum的 releaserver.arch.basearch的值 /usr/bin/python -c 'import yum, pprint; yb = yum. ...
- 【IE6的疯狂之九】li在IE中底部空行的BUG
曾经写过[IE6的疯狂之六]li在IE中底部3像素的BUG(增加浮动解决问题),原文地址:http://www.css88.com/archives/421: IE6 BUG大全: http://ww ...
- HTML5学习之Web存储
在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前, ...
- ZendStudio9之SVN项目代码提示丢失解决
前几天转移服务器,SVN 也重建了个,但用着重建的项目发现代码提示丢失了...好郁闷..搞了半天终于找到解决的方法了! 如果你还保留有以前的 SVN 项目本地完整备份,可以直接拷贝以下三个文件到新项目 ...
- HDU 5880 Family View
$AC$自动机. 用$AC$自动机匹配一次,开一个$flag$记录一下以$i$位置为结尾的最长要打$*$多少个字符,然后倒着扫描一次就可以输出了. #pragma comment(linker, &q ...