本文主要参考了http://blog.csdn.net/zgzczzw/article/details/72330190
http://blog.csdn.net/wx_962464/article/details/37612861
JSON数据:{}保存对象,[]保存数组(例:[{"":"","":""},{……}] )
- 使用FastJSON的几个注意点
1,默认构造方法不能省略
2,get,set方法要齐全
3,不建议子类重写父类的成员变量
4,混淆的时候要注意
- 添加依赖
compile 'com.alibaba:fastjson:1.2.45'
版本在此处查看http://mvnrepository.com/artifact/com.alibaba/fastjson
- 序列化
String jsonString=JSON.toJSONString(object);
参数可以只是单个的对象,或者是对象的List,List里也可以包含List(转完之后会是这个样子:
[{"id":"001","name":"Li","Students":[{"age":"18","stu":"001"},{"age":"17","stu":"002"}]},{"id":"002",……}]
转成标准格式(会分行的那种)
JSON.toJSONString(object,true);
- 反序列化
Class object=JSON.parseObject(jsonString,Class.class);
- 泛型反序列化
List<Class> list=JSON.parseObject(jsonString,new TypeReference<List<Class>>(){});
- parseArray
下例是返回的数据中有一项是数组的情况
JSONObject jsonObject=new JSONObject(jsonString);
JSONArray jsonArray=jsonObject.getArray("name");
List<Class> list=JSON.parseArray(jsonArray.toString(),Class.class);
- 指定解析的字段
1,可使用transient关键字标记不需要解析的字段
2,SimplePropertyPreFilter filter=new SimplePropertyPreFilter(Class.class,"要解析的字段1","要解析的字段2"); //若实体类中没有该字段,则直接不解析,不会报错的 String jsonStr=JSON.toJSONString(object,filter);