奇葩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 ...
随机推荐
- 百度地图API的自动定位和搜索功能(移动端)
近期有个项目涉及到百度地图API,要求做到自动定位和搜索功能.煞费苦心的研究半天,终于能将两个功能合二为一,现将代码贴出来分享给大家,希望你们的砖搬得又快又好.注释不多,具体请参照:http://lb ...
- MySQL索引类型
一.简介 MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引 二.语句 CREATE TABLE table_name[col_name data ty ...
- 首页导航点击A连接跳转并添加上背景色,
<style> ul li { float: left; height: 50px; width: 120px; color: white; text-align: center; mar ...
- FragmentPagerAdapter和FragmentStatePagerAdapter区别?
FragmentPagerAdapter:对于不再需要的fragment,选择调用detach方法,仅销毁视图,并不会销毁fragment实例.FragmentStatePagerAdapter:会销 ...
- js getByClass函数封装
function getByClass(oParent, sClass) { var aEle=oParent.getElementsByTagName('*'); var aResult=[]; v ...
- 苹果也要开发AR眼镜,正与蔡司联手打造
近日,知名博主Robert Scoble在Facebook上称,苹果正在与德国卡尔蔡司公司合作研发一副增强现实智能眼镜,而且最快将在今年发布.据Scoble称,通过和蔡司的雇员在上周的CES展会上进行 ...
- 时间序列 预测分析 R语言
在对短期数据的预测分析中,我们经常用到时间序列中的指数平滑做数据预测,然后根据不同. 下面我们来看下具体的过程 x<-data.frame(rq=seq(as.Date('2016-11-15' ...
- java方法笔记
1.方法 方法(method),函数(function)//但本质上是一样的--实现特定的功能.程序中完成独立功能,可重复使用的一段代码的集合:方法的格式:[修饰符] 返回值的类型 方法名称([形式参 ...
- 数据库索引的实现原理(笔记)详细http://www.linezing.com/blog/?p=798#nav-1
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询.更新数据库表中数据.索引的实现通常使用B树及其变种B+树. 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某 ...
- 视频编辑类sdk--lansoeditor--更新啦, 完全免费,欢迎下载
当前版本是20160506 beta, 增加了兼容高通的64位硬件编码器增加MediaInfo类,您可以轻松获取多媒体中的各种信息.增加了演示的15个ffmpeg处理方法,您可以用这些方法实现秒拍图像 ...