fastjson出现“$ref“:“$.xxx[0]“问题

119 阅读1分钟

项目场景:

使用fastjson,在for循环进行了JSON对象的创建,并在循环里面将JSONobject加入JSONArray 中

JSONObject imageJson = new JSONObject(true);
JSONArray imageArray = new JSONArray();
for (Map<String, Object> map : imageList) {
   imageJson.put("url","www.xxxxx");
   imageArray.add(imageJson);
  }

问题描述:

原因分析:

JSONArray里面的第一条数据是正常的,但是后面的显示就不正常了。这种情况考虑是循环引用,因为JSONObject对象创建在外面,所以每次添加进入JSONArray里面的对象都是同一个。

解决方案:

将 JSONObject imageJson = new JSONObject(true)放在循环里面创建,让每次加入JSONArray里面的都是一个新的对象。