美文网首页
使用JSON.toJSONString时,出现“$ref”怎么办

使用JSON.toJSONString时,出现“$ref”怎么办

作者: 王月亮17 | 来源:发表于2023-06-28 10:32 被阅读0次

现象

代码

Map<Long, Person> map = new HashMap<>();
Person person = new Person();
person.setName("Bruce");
map.put(1L, person);
List<ContainerClass> list = new ArrayList<>();
ContainerClass containerClass = new ContainerClass();
containerClass.setP1(map.get(1L));
containerClass.setP2(map.get(1L));
list.add(containerClass);
String s = JSON.toJSONString(list);
System.out.println(s);

结果

[{"p1":{"name":"Bruce"},"p2":{"$ref":"$[0].p1"}}]

解决

方案一

String s = JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect);

方案二

Person p2 = new Person();
BeanUtils.copyProperties(map.get(1L), p2);
containerClass.setP2(p2);

结果

[{"p1":{"name":"Bruce"},"p2":{"name":"Bruce"}}]

相关文章

网友评论

      本文标题:使用JSON.toJSONString时,出现“$ref”怎么办

      本文链接:https://www.haomeiwen.com/subject/zhunydtx.html