package com.imooc.bilibili.service.config; import com.alibaba.fastjson.JSONObject; 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.context.annotation.Primary; import org.springframework.http.MediaType; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @Configuration public class JsonHttpMessageConverterConfig { public static void main(String[] args){ List<Object> list = new ArrayList<>(); Object o = new Object(); list.add(o); list.add(o); System.out.println(list.size()); System.out.println(JSONObject.toJSONString(list)); System.out.println(JSONObject.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect)); } @Bean @Primary public HttpMessageConverters fastJsonHttpMessageConverters(){ FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); fastJsonConfig.setSerializerFeatures( SerializerFeature.PrettyFormat, // 格式化输出 SerializerFeature.WriteNullStringAsEmpty, // 显示返回结果为null的字段 SerializerFeature.WriteNullListAsEmpty, // 返回字段结果为[]时返回"" SerializerFeature.WriteMapNullValue, // 显示返回字段类型为map,值为null的字段 SerializerFeature.MapSortField, // 返回字段结果排序 SerializerFeature.DisableCircularReferenceDetect ); fastConverter.setFastJsonConfig(fastJsonConfig); //如果使用feign进行微服务间的接口调用,则需要加上该配置 fastConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON)); return new HttpMessageConverters(fastConverter); } }