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