{"$ref":".."} 重复引用问题

今天写代码时遇到一个重复引用问题

public static void main(String[] args) {
	List<ResultVO> resultVOList = getResultVO();
	ResultVO vo = resultVOList.get(0);
	vo.setItem(resultVOList);
	System.out.println(com.alibaba.fastjson.JSON.toJSONString(vo));
}

输出结果

{"item":[{"$ref":".."}]}

网上查了下资料

引用标识说明:

“$ref”:”..” 上一级
“$ref”:”@” 当前对象,也就是自引用
“$ref”:”$” 根对象
{"$ref":"../.."} 引用父对象的父对象
“$ref”:”$.children.0” 基于路径的引用,相当于root.getChildren().get(0)

想了下,这里ResultVO vo = resultVOList.get(0); 我把resultVOList 第一个对象引用给了vo , 然后vo.setItem(resultVOList);

把 resultVOList 里得所有对象都给了vo 的 item ,这样 resultVOList 的第一个对象引用就重复了,用"$ref":".." 来代替了

解决方案,

在代码中,尽量不要重复引用

public static void main(String[] args) {
	List<ResultVO> resultVOList = getResultVO();
	ResultVO vo = new ResultVO();
	vo.setStoreNo(resultVOList.get(0).getStoreNo());
	vo.setCarid(resultVOList.get(0).getCarid());
	vo.setVin(resultVOList.get(0).getVin());
	vo.setItem(resultVOList);
	System.out.println(com.alibaba.fastjson.JSON.toJSONString(vo));
}

结果

{"carid":"32323323","item":[{"carid":"32323323","storeNo":"zzzzzz","vin":"rrrrrrrrr"}],
	"storeNo":"zzzzzz","vin":"rrrrrrrrr"}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值