fastjson常见问题
1. 怎么获得fastjson?你可以通过如下地方下载fastjson:
2. fastjson主要的API哪些?fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parSEObject。 package com.alibaba.fastjson; public abstract class JSON { public static final String toJSONString(Object object); public static final <T> T parSEObject(String text,Class<T> clazz,Feature... features); } 序列化: String jsonString = JSON.toJSONString(obj); 反序列化: VO vo = JSON.parSEObject("...",VO.class); 泛型反序列化: import com.alibaba.fastjson.TypeReference; List<VO> list = JSON.parSEObject("...",new TypeReference<List<VO>>() {}); 3. 哪里找fastjson的使用例子fastjson的使用例子看这里:http://code.alibabatech.com/wiki/display/FastJSON/Examples 4. fastjson的性能如何?fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快,第三方独立测试结果看这里:https://github.com/eishay/jvm-serializers/wiki/Staging-Results 。 自行做性能测试时,关闭循环引用检测的功能。 JSON.toJSONString(obj,SerializerFeature.DisableCircularReferenceDetect) VO vo = JSON.parSEObject("...",VO.class,Feature.DisableCircularReferenceDetect) 这里有jackson作者cowtowncoder等人对fastjson的性能评价: https://groups.google.com/forum/#!topic/java-serialization-benchmarking/8eS1KOquAhw 5. fastjson性能比gson怎样?fastjson比gson快大约6倍,测试结果上这里:https://github.com/eishay/jvm-serializers/wiki/Staging-Results 。gson的g可能是“龟”拼音的缩写,龟速的json库。 6. fastjson可以运行在android上么?fastjson有专门的for android版本,去掉不常用的功能。jar占的字节数更小。git branch地址是:https://github.com/alibaba/fastjson/tree/android 。 7. fastjson序列化的需要像json-lib一样配置java bean的序列化么?不需要,fastjson的序列化和反序列化都不需要做特别配置,唯一的要求是,你序列化的类符合java bean规范。 8. fastjson如何处理日期fastjson处理日期的API很简单,例如: JSON.toJSONStringWithDateFormat(date,"yyyy-MM-dd HH:mm:ss.SSS") 使用ISO-8601日期格式 JSON.toJSONString(obj,SerializerFeature.UseISO8601DateFormat); 全局修改日期格式 JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd"; JSON.toJSONString(obj,SerializerFeature.WriteDateUseDateFormat); 反序列化能够自动识别如下日期格式:
9. 如何定制序列化?你可以使用SimplePrePropertyFilter过滤字段,详细看这里:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=7673519 关于定制序列化,详细的介绍看这里: https://github.com/alibaba/fastjson/wiki/%E5%AE%9A%E5%88%B6%E5%BA%8F%E5%88%97%E5%8C%96 10. 当对象存在引用是,序列化后的结果浏览器不支持,怎么办?使用SerializerFeature.DisableCircularReferenceDetect特性关闭引用检测和生成。例如: String jsonString = JSON.toJSONString(obj,SerializerFeature.DisableCircularReferenceDetect ); 11. IE 6不支持JSON带中文字符串,要怎么处理?fastjson提供了BrowserCompatible这个配置,打开之后,所有的中文都会序列化为uXXXX这种格式,字节数会多一些,但是能兼容IE 6。 String jsonString = JSON.toJSONString(obj,SerializerFeature.BrowserCompatible ); 12. fastjson 如何处理超大对象和超大JSON文本fastjson提供了Stream API,详细看这里 https://github.com/alibaba/fastjson/wiki/Stream-api (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |