最近需要将实体类转成字符串放在Redis里,取出来的时候发现实体类中存在乱码一般的“$ref”
当时还以为前端传数据传错了,后来一排查,原来是fastjson留的一个坑,其在重复引用或者循环引用多个属性或元素的时候就会产生$ref这个标记。原因目测是fastjson为了提高性能自己做了一些优化。
不过还是有方法可以解决这个问题的,只需要在序列化转换的时候加上SerializerFeature.DisableCircularReferenceDetect参数即可,如下:
JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);