2、SpringBoot配置fastJson

本文介绍如何在Spring MVC应用中集成FastJSON来优化JSON数据的响应格式,包括添加依赖、配置FastJSON参数及解决中文乱码问题,并通过示例展示了使用前后JSON输出的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一共有两种实现方式:

        1.添加相应依赖:

添加相应依赖
<!-- fastjson依赖 -->
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.20</version>
</dependency>

2.第一种方式

(1)启动类继承WebMvcConfigurerAdapter

 @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);
        /*
        1.需要先定义一个convert转换消息的对象;
        2.添加fastjson的配置信息,比如是否要格式化返回的json数据
        3.在convert中添加配置信息
        4.将convert添加到converters中
         */
        //1.定义一个convert转换消息对象
        FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();
        //2.添加fastjson的配置信息,比如:是否要格式化返回json数据
        FastJsonConfig fastJsonConfig=new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(
                SerializerFeature.PrettyFormat
        );
        fastConverter.setFastJsonConfig(fastJsonConfig);
        converters.add(fastConverter);
    }
(2)在启动类中用@Bean注入第三方的json解析框架
            
@Bean//使用@Bean注入fastJsonHttpMessageConvert
	public HttpMessageConverters fastJsonHttpMessageConverters(){
		// 1、需要先定义一个 convert 转换消息的对象;
		FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
		//2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

		//2-1 处理中文乱码问题
		List<MediaType> fastMediaTypes = new ArrayList<>();
		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
		fastConverter.setSupportedMediaTypes(fastMediaTypes);

		//3、在convert中添加配置信息.
		fastConverter.setFastJsonConfig(fastJsonConfig);
		HttpMessageConverter<?> converter = fastConverter;
		return new HttpMessageConverters(converter);
	}

    3.测试

        实体类Demo

public class Demo {
    private int id;

    private String name;

    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;//创建时间

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
    
    Controller
 @RequestMapping("/demo")
    public Demo getDemo(){
        Demo demo = new Demo();
        demo.setId(2);
        demo.setName("zapoul");
        demo.setCreateTime(new Date());
        return  demo;
    }

测试有fastjson结果:

{
	"createTime":"2018-06-11 13:01:23",
	"id":2,
	"name":"zapoul"
}

没有使用fastjson结果

{"id":2,"name":"zapoul","createTime":"2018-06-11T05:02:37.131+0000"}

        


### 如何在 Spring Boot 中集成 FastJSON2 实现 JSON 数据处理 #### 添加 Maven 依赖 要在 Spring Boot 项目中使用 FastJSON2 进行 JSON 处理,首先需要引入相应的 Maven 依赖。对于 `spring.boot` 版本为 2.x.x 和 Java 1.8 的环境,可以在项目的 `pom.xml` 文件中添加如下依赖: ```xml <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2-extension-spring5</artifactId> <version>2.0.53</version> </dependency> ``` 此配置使得应用程序能够利用 FastJSON2 提供的功能来优化 JSON 序列化和反序列化的性能[^4]。 #### 配置 FastJSON2 作为默认 JSON 解析器 为了让 FastJSON2 成为 Spring Boot 默认使用的 JSON 工具,默认情况下会自动替换掉 Jackson 或其他内置的 JSON 解析工具。通常不需要额外编写任何代码即可完成这一设置;只需确保上述依赖项已正确定义并加载到类路径下即可生效。 如果希望进一步自定义 FastJSON2 行为,则可以通过创建一个名为 `FastJsonConfig.java` 的配置文件来进行更细致的调整。下面是一个简单的例子展示如何通过这种方式修改一些常见的选项: ```java import com.alibaba.fastjson2.support.config.FastJsonConfig; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JsonConfiguration { @Bean public FastJsonConfig fastJsonConfig() { final FastJsonConfig fastJsonConfig = new FastJsonConfig(); // 设置日期格式 fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); return fastJsonConfig; } } ``` 这段代码展示了怎样改变默认日期时间格式以及其他可能影响 JSON 输出样式的参数。 #### 使用 FastJSON2 API 编写业务逻辑 一旦完成了以上两步准备工作之后,在实际编码过程中就可以像平常一样调用 FastJSON2 提供的各种方法了。比如要将某个对象转成 JSON 字符串可以这样做: ```java import com.alibaba.fastjson2.JSON; // 假设有一个 User 类型的对象 userInstance String jsonString = JSON.toJSONString(userInstance); System.out.println(jsonString); // 打印出来的就是该用户的 JSON 形式表示 ``` 同样地,当接收到外部传来的 JSON 文本时也可以轻松将其还原回原始 POJO 对象: ```java User restoredObject = JSON.parseObject(jsonString, User.class); ``` 这些基本操作足以满足大多数日常开发需求,并且由于 FastJSON2 自身优秀的性能表现,因此非常适合用于构建高性能 Web 应用程序中的数据交互环节[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值