在某个项目中用到了两个for循环(暂时不考虑其他因素),在内层循环中要操作数据,然后加入到一个list中,在取出的时候,从第二条数据开始就出现错误:$ref": "$.returnData[0].ruleList[0]。
for (PageData sku : list) {
List<Gift> listAll = orderGoodsGiftMapper.listAll(pdSku);
if (null != listAll && !listAll.isEmpty()) {
for (Gift gift : listAll) {
pdSku.put("giftFlag", "true");
//循环出现"$ref": "$.returnData[0].ruleList[0]"解析成引用,由于Fastjson解析对象时出现的问题
String jsonString = JSON.toJSONString(pdSku, SerializerFeature.DisableCircularReferenceDetect);
PageData params = JSONObject.parseObject(jsonString, PageData.class);
skuAndGiftList.add(params);
}
}
}
如果直接加入到list,会出现上述问题,网上搜了一下,找到一个解决办法:
String jsonString = JSON.toJSONString(pdSku, SerializerFeature.DisableCircularReferenceDetect);
效果很好。