下载吧 其他软件

分类分类

Fastjson(Java库)

Fastjson(Java库)

v1.2.76 官方版

大小:3.93 MB 更新:2025/01/06

类别:其他软件系统:WinAll

立即下载

  Fastjson是一款非常专业且优秀的Java库,作为阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从字符串反序列化到JavaBean,支持转换功能,可使用该软件将JSON字符换转换为等价的Java对象,Fastjson可以与任意的Java对象一起使用,即使是没有源代码的预先存在的对象也可进行使用,支持通过启动参数和fastjson.properties配置fastjson.auto.discoverable,解决某些场景fastjson与jackson冲突问题,欢迎有需要的用户下载体验

Fastjson(Java库)

软件功能

  在服务器端和安卓客户端提供最好的性能

  提供简单的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十分简洁。

官方教程

  编码

Fastjson(Java库)

  输出

Fastjson(Java库)

  解码

Fastjson(Java库)

  Group.java

Fastjson(Java库)

  User.java

Fastjson(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配置文件中加入以下配置即可。

Fastjson(Java库)

  通常通常配置已经可以满足大部分使用场景,如果你想对它进行自定义配置的话,你可以添加FastJsonConfigBean。

Fastjson(Java库)

  编程式

  如果是使用编程的方式(通常是基于Spring Boot项目)配置Spring MVC的话只需继承WebMvcConfigurerAdapter覆写configureMessageConverters方法即可,就像下面这样。

Fastjson(Java库)

  注:如果您使用的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修饰类或具体方法:

Fastjson(Java库)

  配置JSONPResponseBodyAdvice类:

  XML样式

Fastjson(Java库)

  编程式

Fastjson(Java库)

  在Spring Data Redis中集成Fastjson

  通常我们在Spring中使用Redis是通过Spring Data Redis提供的RedisTemplate来进行的,如果你准备使用JSON作为对象序列/反序列化的方式串行序列化速度有更高的要求的话,建议使用Fastjson提供的GenericFastJsonRedisSerializer或FastJsonRedisSerializer作为RedisTemplate的RedisSerializer。下面是配置方式,非常简单。

  XML样式

  如果是使用XML的方式配置Spring Data Redis的话,只需将RedisTemplate中的替换Serializer为GenericFastJsonRedisSerializer即可。

Fastjson(Java库)

  下面是完整的Spring集成Redis配置供参考。

Fastjson(Java库)

  编程式

  如果是使用编程的方式(通常是基于Spring Boot项目)配置RedisTemplate的话直接在你的配置类(被@Configuration注解修饰的类)中显式创建RedisTemplateBean,设置Serializer即可。

Fastjson(Java库)

  通常使用GenericFastJsonRedisSerializer即可满足大部分场景,如果你想定义特定类型专用的RedisTemplate可以使用FastJsonRedisSerializer来代替GenericFastJsonRedisSerializer,配置是类似的。

  将Fastjson集成到JAX-RS中

  Fastjson已实现JAX-RS,您可以在Restfull Service中使用FastJson进行数据序列化和反序列化。

  在Apache CXF中使用Fastjson

  以Apache CXF Restful和Spring框架为例

Fastjson(Java库)

  在泽西岛使用Fastjson

  自版本1.2.37起的用户注册码(推荐)

Fastjson(Java库)

  注意:当您不必在Jersey进行用户注册时,Fastjson还提供了自动注册,默认情况下已启用,如果您不希望这样做,则可以

Fastjson(Java库)

  在RestEasy中使用Fastjson

  在pom.xml中启用RestEasy自动扫描,如下所示:

Fastjson(Java库)

  或禁用自动扫描,例如在您的web.xml中:

Fastjson(Java库)

常见问题

  1.怎么获得fastjson?

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

  maven中央仓库:http : //central.maven.org/maven2/com/alibaba/fastjson/

  Sourceforge.net:https://sourceforge.net/projects/fastjson/files/

  在maven中如何配置fastjson依赖fastjson最新版本都会发布到maven中央仓库,你可以直接依赖。

Fastjson(Java库)

  android版本

Fastjson(Java库)

  2.fastjson主要的API是什么?

  fastjson入口类是com.alibaba.fastjson.JSON,主要的API是JSON.toJSONString,和parseObject。

Fastjson(Java库)

  序列化:

Fastjson(Java库)

  反序列化:

Fastjson(Java库)

  泛型反序列化:

Fastjson(Java库)

  3.哪里找fastjson的使用例子

  fastjson的使用示例看这里:https : //github.com/alibaba/fastjson/wiki/Samples-DataBind

  4.fastjson的性能如何?

  fastjson是当前java语言中速的json库,比自称加速的jackson速度要快,第三方独立测试结果看这里:https : //github.com/eishay/jvm-serializers/wiki

  自行做性能测试时,关闭循环引用检测的功能。

Fastjson(Java库)

  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很简单,例如:

Fastjson(Java库)

  使用ISO-8601日期格式

Fastjson(Java库)

  整体修改日期格式

Fastjson(Java库)

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

  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特性关闭引用检测和生成。例如:

Fastjson(Java库)

  11.IE 6不支持JSON带中文字符串,要怎么处理?

  fastjson提供了BrowserCompatible这个配置,打开之后,所有的中文都会序列化为\ uXXXX这种格式,字节数会多一些,但是能兼容IE 6。

Fastjson(Java库)

  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某些场景不能识别引用的问题

相关文章
  • 最新排行
  • 最热排行
  • 评分最高
其他软件排行榜

点击查看更多

点击查看更多

点击查看更多