栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot整合FastJson

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot整合FastJson

一、引入FastJson依赖包

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引入成功:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349483.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号