fastjson转json时出现"$ref"

今天偶尔尝试用fastjson进行map嵌套解析,但是出现了”$ref”:”$.null”,
代码如下:

1
2
3
4
5
6
7
Map<String, String> map = new HashMap<>();
String str="111";
map.put(str, str);
Map<Map, Map> map1 = new HashMap<>();
map1.put(map, map);
String json =JSONObject.toJSONString(map1);
System.out.println(json);

结果如下:

1
{{"111":"111"}:{"$ref":"$.null"}}

原来fastjson会检测循环引用,如果存在,会用$ref代替掉,
解决如下:

1
JSONObject.toJSONString(map1,SerializerFeature.DisableCircularReferenceDetect);

关闭循环引用检测

或者前端使用fastjson的js插件