FastJson出现$ref解决方案记录
表关联关系如下
user_id | role_id |
---|---|
1 | 1 |
1 | 2 |
2 | 1 |
返回json数据会出现$ref":"$.rows[序号].role
因为1,2两个用户有相同的角色
解决方法
单个出现
在user对象的role属性上加
@JSONField(serialzeFeatures = SerializerFeature.DisableCircularReferenceDetect)
这是单个配置,个可以进行项目全局配置(不推荐使用,因为有可能引起循环因引用)
@Bean
public HttpMessageConverters fastJson() {
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
//可以在这里加上相关配置
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteDateUseDateFormat,
SerializerFeature.WriteNullNumberAsZero,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteNullBooleanAsFalse);
//处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
fastConverter.setFastJsonConfig(fastJsonConfig);
return new HttpMessageConverters(fastConverter);
}
```