在使用 for
循环向 JSONArray
中添加 JSONObject
时,如果直接使用 add
方法,可能会导致数组中的所有元素都是循环的最后一个值。这是因为 JSONObject
是引用类型,当你在循环中修改同一个 JSONObject
对象时,所有的引用都会指向这个修改后的对象。
JSONObject
并修改它,那么所有引用这个 JSONObject
的地方都会看到这个修改。JSONObject
对象,那么每次修改都会影响到之前已经添加到 JSONArray
中的对象。为了避免这个问题,你需要在每次循环迭代中创建一个新的 JSONObject
对象。以下是一个示例代码:
import org.json.JSONArray;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < 5; i++) {
// 在每次循环中创建一个新的 JSONObject 对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("key", "value" + i);
jsonArray.put(jsonObject);
}
System.out.println(jsonArray.toString());
}
}
[
{"key":"value0"},
{"key":"value1"},
{"key":"value2"},
{"key":"value3"},
{"key":"value4"}
]
通过这种方式,你可以确保每次循环迭代中添加到 JSONArray
中的 JSONObject
都是独立的,不会相互影响。
领取专属 10元无门槛券
手把手带您无忧上云