解决方案
配置序列化
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)
}