Spring Boot使用FastJson解析JSON数据

2018-01-21|来源:

Spring Boot默认使用jackson,国内很多人比较习惯用fastjson。所以我们看一下怎么在spring boot 中使用fastjson


注:官方文档说的1.2.10以后,会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageConverter,支持spring 4.2以下的版本,一个是FastJsonHttpMessageConverter4支持spring 4.2以上的版本


引入FastJson

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.44</version>
</dependency>


配置FastJson

添加FastJson支持第一种方式

继承WebMvcConfigurerAdapter类,在configureMessageConverters方法中加入FastJsonconvert 转换消息的对象

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    super.configureMessageConverters(converters);

    /**
     * 添加FastJson支持第一种方式
     * 继承WebMvcConfigurerAdapter类,在configureMessageConverters方法中加入FastJsonconvert 转换消息的对象
     */
    // 1、需要定义一个 convert 转换消息的对象;
    FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();

    //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

    //3、在convert中添加配置信息.
    fastJsonConverter.setFastJsonConfig(fastJsonConfig);

    //4、将convert添加到converters当中.
    converters.add(fastJsonConverter);
}


添加FastJson支持第二种方式
使用Bean注入的方式把FastJsonHttpMessageConverter添加到HttpMessageConverter

/**
 * 添加FastJson支持第二种方式
 * 使用Bean注入的方式把FastJsonHttpMessageConverter添加到HttpMessageConverter
 * @return
 */
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
    // 1、需要定义一个 convert 转换消息的对象;
    FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

    //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

    //3、在convert中添加配置信息.
    fastConverter.setFastJsonConfig(fastJsonConfig);

    HttpMessageConverter<?> converter = fastConverter;
    return new HttpMessageConverters(converter);
}