JSON

详解Android原生json和fastjson的简单使用(2)

字号+ 作者:H5之家 来源:H5之家 2017-02-23 08:04 我要评论( )

集合中添加了三个同一个对象 json字符串的输出 就变成了 ref,{0} 很明显这是引用第一个对象 因为你添加了相同的对象 fastjson就不创建了 直接引用 这也是他号称最快的原因 但是随之而来的就有一个问题 fastjson识

集合中添加了三个同一个对象   json字符串的输出 就变成了 ref,{0}  很明显这是引用第一个对象     因为你添加了相同的对象   fastjson就不创建了  直接引用  这也是他号称最快的原因

但是随之而来的就有一个问题     fastjson识别引用 其他的jar不识别        如果服务器使用fastjson  客户端使用gson  怎么办嘞

1.都使用fastjson

2.在转json的时候设置一条属性    禁用循环引用对象 就ok

json=JSON.toJSONString(stuList,SerializerFeature.DisableCircularReferenceDetect);

json转list

stuList=JSON.parseArray(json,Student.class); Student student1=stuList.get(0); Log.e("JsonToList","====================="+student1.getName());

有时候呢  并不需要对象里的所有字段    这时候就可以设置一个属性过滤器  把你不需要的字段过滤掉

//过滤字段 属性过滤器PropertyFilter json=JSON.toJSONString(stuList, new PropertyFilter() { @Override//参数1 正在被过滤的对象 参数2 过滤的属性名 参数3 属性值 public boolean apply(Object o, String s, Object o1) { Log.e("PropertyFilter",o+"======"+s+"==============="+o1); if (s.equals("name")){ return false; }else{ return true; } } }); Log.e("PropertyFilter",json);

设置name过滤   请看log日志

在介绍一种情况

定义了一个泛型类

里面有一个学生对象 和一个字符串

把对象转json

Android,json,fastjson

当我们要把这个json转为对象的时候问题就来了

这时候就需要实现TypeReference类 把对象封装一下

完美解决  凡是带泛型的都可以使用TypeReference

最后给大家介绍一个网站    特别强大 会自动格式化json   如果有语法错误也会报错滴

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持网页漂亮网!


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评
l