这是因为返回的对象嵌入了另一个对象 , 但是实际后台业务中它们是不同的对象 . 这个时候可以关闭循环引用来解决这个问题.

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);
    }
}

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐