WebMvcConfig.java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer{
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1.定义一个converters转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
// 2.添加fastjson的配置信息,比如: 是否需要格式化返回的json数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
// 3.配置选用
fastJsonConfig.setSerializerFeatures(
// 输出格式整理
SerializerFeature.PrettyFormat,
// 输出key时是否使用双引号
SerializerFeature.QuoteFieldNames,
// 是否输出值为null的字段
SerializerFeature.WriteMapNullValue,
// List字段如果为null,输出为[],而非null
SerializerFeature.WriteNullListAsEmpty,
// 字符类型字段如果为null,输出为”“,而非null
SerializerFeature.WriteNullStringAsEmpty,
// 数字类型字段如果为null,输出为0,而非null
SerializerFeature.WriteNullNumberAsZero
);
// 4.在converter中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
// 5.将converter赋值给HttpMessageConverter
HttpMessageConverter<?> converter = fastConverter;
// 6.返回HttpMessageConverters对象
return new HttpMessageConverters(converter);
}
}
TestContorller.java
@GetMapping("/test")
public String readFilmDetailed(User data) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("Code", 1);
jsonObject.put("Msg", "获取成功");
jsonObject.put("data", data);
return JSON.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue);
}