转自fastjson wiki说明文档:https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

1. 怎么获得fastjson?

你可以通过如下地方下载fastjson:

  • maven中央仓库: http://central.maven.org/maven2/com/alibaba/fastjson/
  • Sourceforge.net : https://sourceforge.net/projects/fastjson/files/
  • 在maven中如何配置fastjson依赖 fastjson最新版本都会发布到maven中央仓库,你可以直接依赖。

    <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>x.x.x</version>
    </dependency>
    

其中x.x.x不是具体的版本号,最新版本你通过fastjson的首页( https://github.com/alibaba/fastjson/wiki )获得。

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的使用例子看这里:https://github.com/alibaba/fastjson/wiki/Samples-DataBind

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);

反序列化能够自动识别如下日期格式:

  • ISO-8601日期格式
  • yyyy-MM-dd
  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd HH:mm:ss.SSS
  • 毫秒数字
  • 毫秒数字字符串
  • .NET JSON日期格式
  • new Date(198293238)

9. 如何定制序列化?

你可以使用SimplePrePropertyFilter过滤字段,详细看这里:https://github.com/alibaba/fastjson/wiki/%E4%BD%BF%E7%94%A8SimplePropertyPreFilter%E8%BF%87%E6%BB%A4%E5%B1%9E%E6%80%A7

关于定制序列化,详细的介绍看这里: 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

13. 使用@JSONField定制序列化

fastjson提供了使用Annotation定制序列化和反序列化的功能。https://github.com/alibaba/fastjson/wiki/JSONField

[转]fastjson常见问题相关推荐

  1. FastJson常见问题

    1. 怎么获得fastjson? 你可以通过如下地方下载fastjson: maven中央仓库: http://central.maven.org/maven2/com/alibaba/fastjso ...

  2. 高可用的Spring FTP上传下载工具类(已解决上传过程常见问题)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:宇的季节 cnblogs.com/chenkeyu/p/80 ...

  3. Fastjson 爆出远程代码执行高危漏洞,更新版本已修复

    漏洞介绍 fastjson在1.2.24以及之前版本近日曝出代码执行漏洞,当用户提交一个精心构造的恶意的序列化数据到服务器端时,fastjson在反序列化时存在漏洞,可导致远程任意代码执行漏洞. 风险 ...

  4. MaxCompute使用常见问题总结

    摘要: Maxcompute常见问题的总结,方便广大用户可以快速排查问题 计费相关 存储计费:按照存储在 MaxCompute 的数据的容量大小进行阶梯计费. 计算计费:MaxCompute 分按量后 ...

  5. 废弃fastjson!大型项目迁移Gson保姆级实战

    前言 本篇文章是我这一个多月来帮助组内废弃fastjson框架的总结,我们将大部分Java仓库从fastjson迁移至了Gson. 这么做的主要的原因是公司受够了fastjson频繁的安全漏洞问题,每 ...

  6. fastjson android 版本,fastjson 1.1.58.android 发布,Bug 修复版本

    fastjson 1.1.58.android 发布,Bug 修复版本 这里有新鲜出炉的精品教程,程序狗速度看过来! fastjson JSON 解析器 fastjson 是一个性能很好的 Java ...

  7. 看完这些在HW面试官面前横着走 HW面试常见问题大合集(适合第一次参加)

    前言 护网的定义是以国家组织组织事业单位.国企单位.名企单位等开展攻防两方的网络安全演习.进攻方一个月内采取不限方式对防守方展开进攻,不管任何手段只要攻破防守方的网络并且留下标记即成功,直接冲到防守方 ...

  8. 大型项目废弃fastjson迁移至Gson保姆级攻略

    前言 大家好,又双叒叕见面了,我是天天放大家鸽子的蛮三刀. 在被大家取关之前,我立下一个"远大的理想",一定要在这周更新文章.现在看来,flag有用了... 本篇文章是我这一个多月 ...

  9. Fastjson 总结

    0x00 前言 这一篇主要是针对已经完成的fastjson系列做一个知识点总结,一来是为了更加有条理的梳理已经存在的内容,二来是为了更好的复习和利用. 靶场:Fastjson靶场 0x01 Fastj ...

最新文章

  1. 【数学知识】三种方法求 [1,n] 中所有数欧拉函数(线性筛欧拉函数优化至 O(n) )
  2. PCL 点云特征描述与提取
  3. 字符串的模式匹配,KMP算法
  4. hdu-3790最短路径问题
  5. 教你怎么上传本地代码到github
  6. oracle 修改 回话数,Oracle命令--修改oracle回话数
  7. 20200703:将有序数组转换为二叉搜索树(leetcode108)
  8. Q96:PT(3.2):包裹的基于噪声的纹理(Wrapped Noise-Based Textures)
  9. 如何定位http的url路径资源
  10. 使用Python实现XML文件转为Excel文件
  11. oracle表重命名 索引,Oracle索引
  12. 档案管理学 | 档案实体管理概论
  13. Android Studio:基本UI界面设计 (详细)
  14. VS2015 C++/CLR
  15. RAID基础(附RAID10搭建)
  16. iframe 、frameset 、frame的区别
  17. Android FaceBook登录接入--散列密钥获取
  18. 单相半波可控整流电路仿真设计(任务书+lunwen+MATLAB仿真源文件)
  19. (42)C#里使用WeifenLuo.WinFormsUI.Docking库为界面自动布局
  20. 速(尚)学堂第十章IO技术章末作业自写答案

热门文章

  1. TOGAF认证流程图
  2. 中标麒麟V7.0安装(龙芯、昆仑固件)
  3. 【开发日常】IP冲突|MAC地址冲突分别会导致什么问题?
  4. 民法学的一些复习笔记
  5. [求助]python tkinter checkbutton状态捕捉问题
  6. 3d打印模型倾斜出现错位怎么办(UM2打印机)
  7. LeetCode 45. 跳跃游戏 II Jump Game II
  8. 关于神经网络的正确说法,可解释的神经网络模型
  9. Android移植到Virtualbox手记
  10. POLYV AI 打造视频直播“最强大脑”