maven项目:
com.alibaba fastjson 1.2.78
gradle项目:
compile 'com.alibaba:fastjson:1.2.78' // 引入fastjson二、创建一个Web MVC的配置类,并放在springboot扫描包路径下。
package com.it.config;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.List;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List> converters) {
// 1.springboot默认使用Jaskson组件,需要先移除Jaskson组件
for (HttpMessageConverter> converter : converters) { // 循环所有的转换器
if (converter instanceof MappingJackson2HttpMessageConverter) {
converters.remove(converter); // 删除Jaskson转换器
}
}
// 2. 项目中添加fastJson转换器
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
// 3. 配置fastJson转换器
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures( // 配置序列化相关操作
SerializerFeature.WriteMapNullValue, // 允许Map内容为null
SerializerFeature.WriteNullListAsEmpty, // list集合为null使用[]代替
SerializerFeature.WriteNullStringAsEmpty, // String内容为null使用空文字代替
SerializerFeature.WriteDateUseDateFormat, // 日期格式化输出
SerializerFeature.WriteNullNumberAsZero, // 数字为空使用0代替
SerializerFeature.DisableCircularReferenceDetect // 禁用循环引用
);
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); // 配置fastjson转换处理
// 4. 配置响应的头信息
List fastJsonMediaTypes = new ArrayList<>(); // 所有的响应类型
fastJsonMediaTypes.add(MediaType.APPLICATION_JSON); // 使用JSON类型进行相应
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastJsonMediaTypes);
// 5. 转换器列表中添加配置好的fastjson组件
converters.add(fastJsonHttpMessageConverter);
}
}
三、测试fastjson是否引入成功。
创建Message类:
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class Message {
private String title;
@JsonFormat(pattern = "yyyy年MM月dd日")
private Date pubDate;
private String content;
}
RestController中添加测试方法:
@RequestMapping("/echo")
public Object echo(Message message) {
message.setTitle("【echo】" + message.getTitle());
message.setContent("【echo】" + message.getContent());
return message;
}
访问echo发现fastjson引入成功:



