项目场景:
使用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里面的都是一个新的对象。