Springboot2.0配置fastjson
2020-01-08 本文已影响0人
谁在烽烟彼岸
package com.example.web.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.web.servlet.WebMvcAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
/**
* @author:liupengfei
* @createTime: 2020/1/8 10:55 上午
* @discription:
* @package: com.example.web.config
* @project: test_project
**/
@Configuration
public class JsonConfig extends WebMvcConfigurationSupport {
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteEnumUsingName,
SerializerFeature.WriteMapNullValue
);
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
fastJsonConfig.setSerializeFilters(
);
fastJsonConfig.setCharset(
StandardCharsets.UTF_8
);
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON);
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
converters.add(fastJsonHttpMessageConverter);
}
}
第二种写法
package com.example.web.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 java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
/**
* @author:liupengfei
* @createTime: 2020/1/8 10:55 上午
* @discription:
* @package: com.example.web.config
* @project: test_project
**/
@Configuration
public class JsonConfig {
@Bean
public HttpMessageConverters httpMessageConverter() {
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteEnumUsingName,
SerializerFeature.WriteMapNullValue
);
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
fastJsonConfig.setSerializeFilters(
);
fastJsonConfig.setCharset(
StandardCharsets.UTF_8
);
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON);
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
return new HttpMessageConverters(fastJsonHttpMessageConverter);
}
}
fastjson生成json时Null属性不显示
- Fastjson的SerializerFeature序列化属性 --来自oschina bfleeee博客
- QuoteFieldNames———-输出key时是否使用双引号,默认为true
- WriteMapNullValue——–是否输出值为null的字段,默认为false
- WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
- WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
- WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
- WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null。