JSONObject.parseObject

转载请标明出处:http://77blogs.com/?p=146

{

“data”:{

“shop_uid”:”123″;

“id”:”123″

}

}

将上面的json字符串转换为JSONObject之后可能会出现顺序不一样,即在JSONObject中,可能是下面的顺序:

 

“id”:”123″

“shop_uid”:”123″;

 

为了保证顺序一样,可以用:

JSONObject jsonObject = JSONObject.parseObject(dataString, Feature.OrderedField);

后面加上参数:

Feature.OrderedField

自定义Json解析工具

此博客为博主原创文章,转载请标明出处,维权必究:http://77blogs.com/?p=301

fastjson是很好用的json解析工具,只可惜项目中要求apk体积尽量小,所以并不打算引入fastJson,只好自己写一个,遗憾的是写出的这个并没法解析所有的json数据,不过还是很值得学习的,且听我一一道来。

主要实现两个功能:

1、将jsonArray解析为List

2、将json数据转化为class

当然,class里面的成员变量的名称需要与json里面的key一样。

 

思路:

1、通过反射获取class类里面的成员变量名称以及类型

2、通过成员变量的名称与类型去json数据中获取该key对应的value

2、将value通过反射赋值给class对象。

 

具体且看:

1、定义一个实体类保存class里面的反射获取到的每个成员变量对应字段,名称,类型

 

2、将json数据转换为实体类

 

2.1 取出实体类中的属性,根据名称与类型去jsonObject中取值

 

2.2 给实体类赋值

 

2.3 JsonArrayToList方法

 

3、将jsonArray转为list,注意参数json是jsonArray数据,原理类似,就不再多讲