fastjson是阿里出的,尽管近年fasjson爆出过几次严重漏洞,但是平心而论,fastjson的性能的确很有优势,尤其是大数据量时的性能优势,所以fastjson依然是我们的首选;spring boot默认的json解析器是Jackson,替换为fastjson很有必要。

1、替换方法

1.1、引入依赖,【注意,1.2.61以下有严重高危漏洞,1.2.61修复,必须升级到1.2.61,目前最新版本为1.2.62】

        <dependency><groupid>com.alibaba</groupid><artifactid>fastjsonlt;/artifactid><version>1.2.62lt;/version></dependency>

1.2、配置

注意:Springboot2.0以后,WebMvcConfigurerAdapter 过时了, 以前1版本继承WebMvcConfigurerAdapter 来实现的方法不推荐了。下面介绍两种配置方式,还有一种实现WebMvcConfigurationSupport的方式就不介绍了,道路千万条,选一条就足够了:

方式一(推荐):用bean替代默认解析器

package com.anson.config;import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;@Configuration
public class WebConfig {/*** @Author anson* @Description 配置消息转换器* @Date: 2019-12-8 11:23:33* @version: 1.0* new HttpMessageConverters(true, converters);* 一定要设为true才能替换否则不会替换* @return 返回一个消息转换的bean*/@Beanpublic HttpMessageConverters fastJsonMessageConverters() {List> converters = new ArrayList<>();//需要定义一个convert转换消息的对象;FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();//添加fastJson的配置信息;FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);//全局时间配置fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");fastJsonConfig.setCharset(Charset.forName("UTF-8"));//处理中文乱码问题List fastMediaTypes = new ArrayList<>();fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);//在convert中添加配置信息.fastConverter.setSupportedMediaTypes(fastMediaTypes);fastConverter.setFastJsonConfig(fastJsonConfig);converters.add(0, fastConverter);return new HttpMessageConverters(converters);}
}

方式二、实现WebMvcConfigurer

@Configuration
public class WebConfigure implements WebMvcConfigurer{/*** 配置消息转换器* @param converters*/@Overridepublic void configureMessageConverters(List> converters) {//需要定义一个convert转换消息的对象;FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();//添加fastJson的配置信息;FastJsonConfig fastJsonConfig = new FastJsonConfig();fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);//全局时间配置fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");fastJsonConfig.setCharset(Charset.forName("UTF-8"));//处理中文乱码问题List fastMediaTypes = new ArrayList<>();fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);//在convert中添加配置信息.fastConverter.setSupportedMediaTypes(fastMediaTypes);fastConverter.setFastJsonConfig(fastJsonConfig);converters.add(0,fastConverter);}
}

spring boot2 修改默认json解析器Jackson为fastjson相关推荐

  1. Jackson:我是最牛掰的 Java JSON 解析器(有点虚)

    在当今的编程世界里,JSON 已经成为将信息从客户端传输到服务器端的首选协议,可以好不夸张的说,XML 就是那个被拍死在沙滩上的前浪. 很不幸的是,JDK 没有 JSON 库,不知道为什么不搞一下.L ...

  2. java json解码器_Jackson:我是最牛掰的 Java JSON 解析器(有点虚)

    在当今的编程世界里,JSON 已经成为将信息从客户端传输到服务器端的首选协议,可以好不夸张的说,XML 就是那个被拍死在沙滩上的前浪. 很不幸的是,JDK 没有 JSON 库,不知道为什么不搞一下.L ...

  3. Gson:GitHub 标星 18K 的 JSON 解析器,Google 出品的 Java JSON 解析器,强烈推荐!

    01.前世今生 我叫 Gson,是一款开源的 Java 库,主要用途为序列化 Java 对象为 JSON 字符串,或反序列化 JSON 字符串成 Java 对象.从我的名字上,就可以看得出一些端倪,我 ...

  4. SpringBoot配置跨域 修改默认json序列化

    SpringBoot配置跨域 修改默认json序列化 修改跨域 addCorsMappings(CorsRegistry registry)方法添加跨域设置的,无法生效,原因是请求经过的先后顺序问题, ...

  5. cJSON_译(C中的超轻量级JSON解析器)

    cJSON ANSI C中的超轻量级JSON解析器. 通行证 执照 版权所有(c)2009-2017 Dave Gamble和cJSON贡献者 特此免费授予获得此软件和相关文档文件("软件& ...

  6. json解析对应的value为null_徒手撸一个JSON解析器

      Java大联盟 致力于最高效的Java学习 关注 作者 | 田小波 cnblogs.com/nullllun/p/8358146.html1.背景JSON(JavaScript Object No ...

  7. java json parser_自己实现JSON解析器 JsonParser

    自己实现json parser,只有一个类,不依赖任何第三方工具. 背景 为什么要实现json解析器呢?在我实现一个rpc框架的过程中,注册中心部分使用consul,而consul的api是通过res ...

  8. 手写了一个简单的JSON解析器,网友直乎:牛!

    作者 | 田小波 来源 | http://r3m2u.cn/4455O 背景 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.相对于另一种数据交换格式 X ...

  9. 开发 Spring 自定义视图和视图解析器

    Spring 视图和视图解析器简介 什么是 Spring 视图和视图解析器 Spring MVC(Model View Controller)是 Spring 中一个重要的组成部分,而 Spring ...

最新文章

  1. 【lidar】3D目标检测PointPillars:论文解读、代码解读、部署实现(2)
  2. 网络编程学习笔记(基本套接口选项)
  3. 图片上传组件_博客必备功能,拖拽上传图片!
  4. 如何利用CNKI句子检索功能提高研究效率
  5. mysql启动报错2002_mysql登陆启动报错 ERROR 2002 (HY000) 解决方法
  6. 信息学奥赛C++语言:输出亲朋字符串
  7. 酒店上网用AC+AP模式,300余间房,需要申请多少宽带资源?
  8. go - str - byte
  9. maven 相关简介,和操作命令
  10. 计算机word中如何左右缩进字符,【2人回答】Word文档怎么左右缩进两个字符?-3D溜溜网...
  11. MsDos下的Debug调试器与8080汇编小实验
  12. 这几招教你如何增加食物中铁的吸收
  13. 创业4年女掌门刘静瑜,创造动力电池,中创新航市值超600亿
  14. 青海省海西蒙古族藏族自治州谷歌高清卫星地图下载
  15. Unity3d组合键
  16. CVE-2017-8570微软office漏洞复现与研究
  17. 笔记本电脑安装固态硬盘并重装win10系统
  18. 马克思主义基本原理笔记(黄色标记要求会背)
  19. 提高电脑性能增加fps的方法
  20. 深入理解Http请求、DNS劫持与解析

热门文章

  1. 很多程序员编程时都戴耳机?他们在听什么
  2. pycharm 在ubuntu18.04 20.04以上保存在侧边栏的方法
  3. 数据挖掘试题(150道) (1)
  4. mysql-5.7.24-winx64忘记密码该咋解决
  5. 分享一下我为什么可以获得ssp
  6. 基于深度学习的医学图像配准综述
  7. 图像分割深度学习从零开始学习路线
  8. 模拟PLC 的圆弧插补方式在VC中绘制圆弧
  9. 控制客户端对同一个服务端地址的连接端口数量
  10. Angular5学习笔记 - 虚拟RestfulApi配置与使用(六)