我想创建一个如下所示的json数组:
[{"label":"Organisation 1","ID":2},{"label":"Organisation 2","ID":1},....]
我做了如下:
JSONObject obj = new JSONObject();
while (rstcust.next()) {
obj.put("label", rstcust.getString(3));
obj.put("ID", rstcust.getInt(1));
}
out.print(obj);
我只得到第一个值作为输出我没有得到像上面的fomat:
我得到以下输出
{"label":"Organisation 1","ID":2}
答案 0 :(得分:1)
这种情况正在发生,因为您正在创建JSONObject
,但您需要的是JSONArray
创建一个JSONArray
对象,然后将单个JSONObject添加到其中。代码将是这样的。
JSONArray arr = new JSONArray();
while (rstcust.next()) {
JSONObject obj = new JSONObject();
obj.put("label", rstcust.getString(3));
obj.put("ID", rstcust.getInt(1));
arr.put(obj);
}
out.print(arr);
可以找到JSONArray的JavaDocs here。
在java 6中,org.json.JSONArray包含put方法,在java 7中,javax.json包含add方法。