这是因为返回的对象嵌入了另一个对象 , 但是实际后台业务中它们是不同的对象 . 这个时候可以关闭循环引用来解决这个问题.
package cn.com.baidu;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
@Configuration
public class FastJsonConfig implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
// 创建FastJsonConfig对象,并配置SerializerFeature
com.alibaba.fastjson.support.config.FastJsonConfig fastJsonConfig = new com.alibaba.fastjson.support.config.FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.WriteMapNullValue, // 输出值为null的字段
SerializerFeature.DisableCircularReferenceDetect // 禁用循环引用检测
// ... 其他你需要的特性
);
// 将FastJsonConfig设置到FastJsonHttpMessageConverter中
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
// 将配置好的converter添加到converters列表中
converters.add(0, fastJsonHttpMessageConverter);
}
}