本文主要參考了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);