跳到主内容
Java
文章阅读

解决fastjson2序列化Jpa双向@OneToOne死循环问题

2025/12/1679 次阅读2 分钟

解决方案

配置序列化


JSONWriter.Feature.ReferenceDetection

example


        fun getWriterConfig() : FastJsonConfig {
            val config = FastJsonConfig()
            config.setReaderFeatures(JSONReader.Feature.FieldBased, JSONReader.Feature.SupportArrayToBean)
            config.setWriterFeatures(
                JSONWriter.Feature.WriteMapNullValue,
                JSONWriter.Feature.WriteNullBooleanAsFalse,
                JSONWriter.Feature.WriteLongAsString,
                JSONWriter.Feature.WriteNulls,
                JSONWriter.Feature.WriteEnumUsingToString,
                JSONWriter.Feature.ReferenceDetection
            )
            return config
        }

    override fun configureMessageConverters(converters: MutableList<HttpMessageConverter<*>>) {
        val converter = FastJsonHttpMessageConverter()
        converter.fastJsonConfig = getWriterConfig()
        converter.defaultCharset = StandardCharsets.UTF_8
        converter.supportedMediaTypes = Collections.singletonList(MediaType.APPLICATION_JSON)
        converters.add(0, converter)
        super.addDefaultHttpMessageConverters(converters)
        super.configureMessageConverters(converters)
    }
返回顶部