Fastjson是一款非常专业且优秀的Java库,作为阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从字符串反序列化到JavaBean,支持转换功能,可使用该软件将JSON字符换转换为等价的Java对象,Fastjson可以与任意的Java对象一起使用,即使是没有源代码的预先存在的对象也可进行使用,支持通过启动参数和fastjson.properties配置fastjson.auto.discoverable,解决某些场景fastjson与jackson冲突问题,欢迎有需要的用户下载体验
在服务器端和安卓客户端提供最好的性能
提供简单的toJSONString()和parseObject()方法,将Java对象转换成JSON,反之亦然。
允许将预先存在的不可修改的对象转换为JSON,或从JSON中转换。
对Java泛型的广泛支持
允许自定义对象的表示方法
支持任意复杂的对象(具有深厚的继承层次和广泛使用的通用类型
速度快
fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越。
使用广泛
fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。
测试完备
fastjson有非常多的testcase,在1.2.11版本中,testcase超过3321个。每次发布都会进行回归测试,保证质量稳定。
使用简单
fastjson的API十分简洁。
编码
输出
解码
Group.java
User.java
在Spring中集成Fastjson
在Spring MVC中集成Fastjson
如果您使用Spring MVC来构建Web应用程序性能有更高的要求的话,可以使用Fastjson提供的FastJsonHttpMessageConverter来替换Spring MVC默认的HttpMessageConverter 以提高@RestController @ResponseBody @RequestBody注释解的JSON序列化速度。下面是配置方式,非常简单。
XML样式
如果是使用XML的方式配置Spring MVC的话,只需在Spring MVC的XML配置文件中加入以下配置即可。
通常通常配置已经可以满足大部分使用场景,如果你想对它进行自定义配置的话,你可以添加FastJsonConfigBean。
编程式
如果是使用编程的方式(通常是基于Spring Boot项目)配置Spring MVC的话只需继承WebMvcConfigurerAdapter覆写configureMessageConverters方法即可,就像下面这样。
注:如果您使用的Fastjson版本小于1.2.36的话(强烈建议使用最新版本),在与Spring MVC 4.X版本集成时需使用FastJsonHttpMessageConverter4。
注2:SpringBoot 2.0.1版本中加载WebMvcConfigurer的顺序发生了变化,故需使用converters.add(0, converter);指定FastJsonHttpMessageConverter在转换器内部的顺序,否则在SpringBoot 2.0.1及之后的版本中将优先使用Jackson处理。
对JSONP支持
使用注解@ResponseJSONP修饰类或具体方法:
配置JSONPResponseBodyAdvice类:
XML样式
编程式
在Spring Data Redis中集成Fastjson
通常我们在Spring中使用Redis是通过Spring Data Redis提供的RedisTemplate来进行的,如果你准备使用JSON作为对象序列/反序列化的方式串行序列化速度有更高的要求的话,建议使用Fastjson提供的GenericFastJsonRedisSerializer或FastJsonRedisSerializer作为RedisTemplate的RedisSerializer。下面是配置方式,非常简单。
XML样式
如果是使用XML的方式配置Spring Data Redis的话,只需将RedisTemplate中的替换Serializer为GenericFastJsonRedisSerializer即可。
下面是完整的Spring集成Redis配置供参考。
编程式
如果是使用编程的方式(通常是基于Spring Boot项目)配置RedisTemplate的话直接在你的配置类(被@Configuration注解修饰的类)中显式创建RedisTemplateBean,设置Serializer即可。
通常使用GenericFastJsonRedisSerializer即可满足大部分场景,如果你想定义特定类型专用的RedisTemplate可以使用FastJsonRedisSerializer来代替GenericFastJsonRedisSerializer,配置是类似的。
将Fastjson集成到JAX-RS中
Fastjson已实现JAX-RS,您可以在Restfull Service中使用FastJson进行数据序列化和反序列化。
在Apache CXF中使用Fastjson
以Apache CXF Restful和Spring框架为例
在泽西岛使用Fastjson
自版本1.2.37起的用户注册码(推荐)
注意:当您不必在Jersey进行用户注册时,Fastjson还提供了自动注册,默认情况下已启用,如果您不希望这样做,则可以
在RestEasy中使用Fastjson
在pom.xml中启用RestEasy自动扫描,如下所示:
或禁用自动扫描,例如在您的web.xml中:
1.怎么获得fastjson?
你可以通过如下地方下载fastjson:
maven中央仓库:http : //central.maven.org/maven2/com/alibaba/fastjson/
Sourceforge.net:https://sourceforge.net/projects/fastjson/files/
在maven中如何配置fastjson依赖fastjson最新版本都会发布到maven中央仓库,你可以直接依赖。
android版本
2.fastjson主要的API是什么?
fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。
序列化:
反序列化:
泛型反序列化:
3.哪里找fastjson的使用例子
fastjson的使用示例看这里:https : //github.com/alibaba/fastjson/wiki/Samples-DataBind
4.fastjson的性能如何?
fastjson是当前java语言中速的json库,比自称加速的jackson速度要快,第三方独立测试结果看这里:https : //github.com/eishay/jvm-serializers/wiki
自行做性能测试时,关闭循环引用检测的功能。
5.fastjson性能比gson怎样?
fastjson比gson快大约6倍,测试结果上这里:https : //github.com/eishay/jvm-serializers/wiki/Staging-Results。
6.fastjson可以运行在android上么?
fastjson有专门针对android版本,去掉不常用功能。jar占的字节数更小。gitbranch地址是:https : //github.com/alibaba/fastjson/tree/android。
7.fastjson序列化的需要像json-lib相同配置java bean的序列化么?
不需要,fastjson的序列化和反序列化都不需要做特别配置,唯一的要求是,你序列化的类符合java bean规范。
8.fastjson如何处理日期
fastjson处理日期的API很简单,例如:
使用ISO-8601日期格式
整体修改日期格式
反序列化能够自动识别如下日期格式:
ISO-8601日期格式
yyyy-MM-dd
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd HH:mm:ss.SSS
毫米数字
毫米数字弦
.NET JSON日期格式
新日期(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特性关闭引用检测和生成。例如:
11.IE 6不支持JSON带中文字符串,要怎么处理?
fastjson提供了BrowserCompatible这个配置,打开之后,所有的中文都会序列化为\ uXXXX这种格式,字节数会多一些,但是能兼容IE 6。
12.fastjson如何处理超大对象和超大JSON文本
fastjson提供了Stream API,详细看这里https://github.com/alibaba/fastjson/wiki/Stream-api
13.使用@JSONField定制序列化
fastjson提供了使用注释定制序列化和反序列化的功能。https://github.com/alibaba/fastjson/wiki/JSONField
14.将对象中的空值输出
出现情况下fastjson不输出对象的空值的,如果你需要输出空值,看这里https://github.com/alibaba/fastjson/wiki/WriteNull_cn
15.返回整数javascript丢失精度问题
当返回的整数大于9007199254740991或小于-9007199254740991时,在javascript中会丢失精度。此时使用SerializerFeature.BrowserCompatible能自动将数值转换为字符串返回,解决精度问题。
修复一些直接抛RuntimeException的问题
parser自动识别gzip bytes
修复Throwable继承类属性不支持自动类型转换问题
修复PrettyFormat情况下引用计算不对的问题
修复AutoType不兼容LinkedHashMap的问题
增强对Enum类型的自定类型转换
修复deserializeUsing在泛型某些场景不能正常工作的问题
提升JSONReader性能,减少小对象创建
增强对JSONPath对filter的支持
JSONPath支持忽略NullValue的选项
增强对定制化enum的支持
增强对java.time.Instant和org.joda.time.Instant的支持
修复Parser某些场景不能识别引用的问题
Cygwin
808 KB/2020-08-17Cygwin(UNIX模拟环境)是许多自由软件的集合,最初由CygnusSolutions开发,用于各种版本的MicrosoftWindows上,运行UNIX类系统。Cygwi
Vbs To Exe
1.45 MB/2020-08-17VbsToExe绿色中文版是一款vb转exe的工具。VbsToExe简单易用,而且VbsToEXE转换器自带中文,界面简洁操作简单,需要这款转换工具的朋友可以下载使用。
Visual Studio 2015 Community
5.8 GB/2020-08-17微软终于发布了VisualStudio2015简体中文版,下载吧第一时间提供VisualStudio2015官方中免费文版下载。VS2015提供了跨平台开发的功能,支持从Windows到Linux、甚至iOS和Android的开发!
Cygwin x64
832 KB/2020-08-17Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnussolutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购
sql数据库备份恢复助手
1.77 MB/2020-08-17sql数据库备份恢复助手是一款能够帮助sql数据库备份与恢复的工具,软件完美支持自动/手工方式备份本地/局域网(远程)数据库,无限复合式备份任务,支持备份文件通过Lan/Ftp/云
Navicat for MySQL
17.34 MB/2020-08-17NavicatforMySQL是一个强大的MySQL数据库管理和开发工具。Navicat为专业开发者提供了一套强大的足够尖端的工具,但它对于新用户仍然是易于学习。使用了极好的图形用户界面(GUI)...
jEdit
3.72 MB/2020-08-17jEdit官方中文版是一个用Java语言开发的文本编辑器,在GPL下发布。它可以在Windows、Linux、MacOS等多种平台下运行,并且有很多插件,可以扩充基本功能。它也支
Aptana Studio
127.97 MB/2020-08-17AptanaStudio官方版是一个集成式的Web应用程序开发环境,它不仅可以作为独立的程序运行,而且还可以作为eclipse插件使用。AptanaStudio可以支持多种AJA
UltraEdit
phpMyAdmin
WinHex
EmEditor Professional(文本的编辑工具)
JSCompress
Java反编译器
Resource Hacker
AutoHotkey(自动安装脚本编写工具)
Oracle SQL Handler
琼崖海南麻将15旧版下载
一木棋牌官方手机版本
波克城市棋牌
贪玩娱乐苹果官方下载
明星三缺一手机单机版
心悦吉林麻将完整版
狂暴捕鱼官网有330.3版本
琼崖海南麻将15app下载
彩民之家44666
您可能感兴趣的专题
男生必备
男生们看过来!
安卓装机必备
女生必备
女生必备app是拥有众多女性用户的手机软件,作为一个女生,生活中像淘宝、京东这类线上购物软件可以说是少不了的,小红书这种穿搭、化妆分享平台也很受欢迎,类似于西柚大姨妈、美柚这种专为女生打造的生理期app更是手机必备,还有大家用的最多拍照美颜app是绝对不能忘记的,除此之外对于一些追星女孩来说,微博也是一个必不可少的软件。超多女生必备软件尽在下载吧!
迅雷看看使用教程
迅雷看看播放器是一款多功能在线高清多媒体视频播放器,支持本地播放与在线视频点播,采用P2P点对点传输技术,可以在线流畅观看高清晰电影。不仅如此,迅雷看看不断完善用户交互和在线产品体验,让您的工作与生活充满乐趣。
驱动精灵
驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能,也是大家日常生活中经常用到的实用型软件之一了。
拼音输入法
对于电脑文字输入,拼音输入法是一种非常受欢迎的输入法,搜狗拼音输入法、百度拼音输入法、QQ拼音输入法、谷歌拼音输入法、紫光拼音输入法、智能拼音输入法等,你在用哪款呢?一款好用适合自己的拼音输入法一定对您平时帮助很大!下载吧收集了最热门国人最喜欢用的拼音输入法给大家。
b站哔哩哔哩怎么使用
很多人都喜欢在b站哔哩哔哩上观看视频,不单是因为可以提前看到一些视频资源,B站的一些弹幕、评论的玩法也是被网友们玩坏了!下面下载吧小编带来了b站哔哩哔哩怎么使用的教程合集!希望能帮到你啦!
抖音短视频app
抖音短视频app,这里汇聚全球潮流音乐,搭配舞蹈、表演等内容形式,还有超多原创特效、滤镜、场景切换帮你一秒变大片,为你打造刷爆朋友圈的魔性短视频。脑洞有多大,舞台就有多大!好玩的人都在这儿!