fastJson是阿里巴巴旗下的一个开源项目之一,顾名思义它专门用来作快速操做Json的序列化与反序列化的组件。它是目前json解析最快的开源组件没有之一!在这以前jaskJson是命名为快速操做json的工具,而当阿里巴巴的fastJson诞生后jaskjson就消声匿迹了,不过目前不少项目还在使用。git
将fastJson加入到SpringBoot项目内,配置json返回视图使用fastJson解析。spring
看过我前几章的程序猿们都知道,咱们经过IntelliJ IDEA工具建立SpringBoot项目,咱们本章也不例外,具体建立步骤这里就很少作解释了,最终项目结构以下图1所示:数据库
能够看到咱们事先导入了,Web、MySQL、JPA组件,咱们把上一章的application.yml配置文件复制到咱们的项目对应的目录下,而且修改pom.xml添加Druid的支持。以下图2所示:json
注意:图2中的spring-boot-stater-tomcat依赖的scope属性必定要注释掉咱们才能在IntelliJ IDEA工具使用SpringBootApplication的形式运行项目!
完成上述配置后咱们接下来将fastJson的maven依赖也添加进咱们的pom.xml配置文件中。tomcat
跟咱们上一章很类似,咱们须要到maven仓库复制对应的maven依赖xml配置到咱们项目的pom.xml中。访问仓库地址:mvnrepository.com/artifact/co…,这里咱们使用fastJson最新版本,咱们当访问fastJson的列表界面时能够看到阿里巴巴2017年就发布了不少个版本,证实阿里巴巴一直在维护而且升级版本,因此咱们能够大胆的放心使用。添加效果图以下图3所示:app
添加完成依赖后咱们把上一章的实体类、控制器、JPA复制到咱们当前项目下,咱们就不重复讲解如何建立这些简单的实体类了。以下图4所示:框架
咱们接下来建立一个FastJsonConfiguration配置信息类,添加@Configuration注解让SpringBoot自动加载类内的配置,有一点要注意咱们继承了WebMvcConfigurerAdapter这个类,这个类是SpringBoot内部提供专门处理用户自行添加的配置,里面不单单包含了修改视图的过滤还有其余不少的方法,包括咱们后面章节要讲到的拦截器,过滤器,Cors配置等。
fastJson视图过滤配置详细内容以下图5所示:maven
上述图5内fastJson配置实体调用setSerializerFeatures方法能够配置多个过滤方式,下面咱们来介绍下经常使用的SerializerFeatures配置。spring-boot
WriteNullListAsEmpty :List字段若是为null,输出为[],而非null
WriteNullStringAsEmpty : 字符类型字段若是为null,输出为"",而非null
DisableCircularReferenceDetect :消除对同一对象循环引用的问题,默认为false(若是不配置有可能会进入死循环)
WriteNullBooleanAsFalse:Boolean字段若是为null,输出为false,而非null
WriteMapNullValue:是否输出值为null的字段,默认为false。工具
通过上述的配置咱们基本完成对了SpringBoot整合FastJson的内容,咱们接下来尝试运行下项目,以下图6所示:
能够看到咱们的项目正常运行了,咱们访问以前编写的查询列表的请求,看是否给我返回了相应的数据,访问地址:127.0.0.1:8080/user/list,以下图7所示:
能够看到咱们获得了咱们想要的结果,那么接下来咱们该如何去测试fastJson是否已经生效了呢?
咱们上述的配置中添加一个SerializerFeatures(WriteMapNullValue)这个配置的含义就是输入为NULL值的字段,咱们尝试修改数据库中的name为NULL看看效果如何,以下图8所示:
咱们能够看到咱们将以前的name为test的name字段设置了NULL,咱们请求列表接口仍是能够获得该字段的可是字段返回是没有值得。
接下来修改FastJsonConfiguration类内的setSerializerFeatures方法,再添加一个配置WriteNullStringAsEmpty,咱们再次重启项目访问用户列表地址效果如何?修改配置以下图9所示:
配置修改完成后,重启咱们的项目程序,访问用户列表请求地址,获得的返回结果以下图10所示:
能够看到上述图10内的红色标记处,name的值从NULL变成了"",那么证实咱们的fastJson消息的转换配置完美生效了。若是你的效果不是上图10所示,请检查FastJsonConfiguration配置以及maven依赖问题。
以上即是咱们本章的所有讲解内容,本章主要讲解了SpringBoot项目如何将返回的消息从内部的Json转换变成fastJson转换,如何添加fastJson的转换器过滤配置SerializerFeature。由于@ResultControll注解的Controller自己返回值就是json字符串,咱们上述讲解经过两次修改fastJson过滤器配置的方式见证了fastJson的神奇效果。
本上内容已经上传到码云:
SpringBoot配套源码地址:gitee.com/hengboy/spr…
SpringCloud配套源码地址:gitee.com/hengboy/spr…
SpringBoot相关系列文章请访问:目录:SpringBoot学习目录
QueryDSL相关系列文章请访问:QueryDSL通用查询框架学习目录
SpringDataJPA相关系列文章请访问:目录:SpringDataJPA学习目录
SpringBoot相关文章请访问:目录:SpringBoot学习目录,感谢阅读!
欢迎加入QQ技术交流群,共同进步。