在java中创建json只获得第一个值不能获得所需的格式

时间:2015-10-25 11:47:24

标签: java json

我想创建一个如下所示的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}

1 个答案:

答案 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方法。