fastjson出现$ref
是由于循环引用引起的,比方说返回的json对象为空,而你要去引用对象的属性,这时候就无法获得了,会出现这样的引用标识,可以这样解决JSONObject.toJSONString(content,SerializerFeature.DisableCircularReferenceDetect,SerializerFeature.WriteMapNullValue);去避免循环引用的探测。
循环引用很多场景中,我们需要序列化的对象中存在循环引用
fastjson中序列化对象时不想返回对象的一些属性:
将对象转换成json格式的时候,常常需要排除一些字段(例如延迟加载的字段)。在fastjson库中,我们可以使用SimplePropertyPreFilter忽略掉这些属性。
filterSimplePropertyPreFilter= new SimplePropertyPreFilter();
filter"name".getExcludes().add();
filter//object是Java对象String result = JSONObject.toJSONString(object,);
或是在字段上添加transient关键字, 例如:
private transient String ignore,transient关键字,在fastjson序列化json的时候忽略掉类中对应的属性。