我正在尝试构建以下类型的JSON对象
[
{"Value":0,"Cities":["London","Tokyo","Washington"],"Name":"John"},
{"Value":1,"Cities":["London","Tokyo","Washington"],"Name":"John"},
{"Value":2,"Cities":["London","Tokyo","Washington"],"Name":"John"}
]
这是我到目前为止所做的。 JSON对象是用最后一个条目写的。
JSONArray outer = new JSONArray();
JSONObject js = new JSONObject();
List<String> str = new ArrayList<String>();
str.add("London");
str.add("Tokyo");
str.add("Washington");
int res = 3;
for(int i=0;i<res;i++){
js.put("Value", i);
js.put("Name", "John");
js.put("Cities", str);
outer.add(js);
}
System.out.println(outer);
我现在得到的是:
[
{"Value":2,"Cities":["London","Tokyo","Washington"],"Name":"John"},
{"Value":2,"Cities":["London","Tokyo","Washington"],"Name":"John"},
{"Value":2,"Cities":["London","Tokyo","Washington"],"Name":"John"}
]
答案 0 :(得分:2)
每次创建一个新的JSONObject,在循环中。
JSONArray outer = new JSONArray();
JSONObject js = null;
List<String> str = new ArrayList<String>();
str.add("London");
str.add("Tokyo");
str.add("Washington");
int res = 3;
for(int i=0;i<res;i++){
js= new JSONObject();
js.put("Value", i);
js.put("Name", "John");
js.put("Cities", str);
outer.add(js);
}
System.out.println(outer);
此外,如果在任何时候更改城市,您可能会遇到同样的问题,因此除非它们始终保持所需的三个,否则为每个对象创建一个新列表。
答案 1 :(得分:0)
您需要为每个Value,Name,Cities对创建新的JSON对象。 所以你需要把它放在第二个for循环中。喜欢这个
for(int i=0;i<res;i++){
js= new JSONObject();