0

我对java的json-lib库有问题,事实证明,如果我只得到一条记录的JSON我没有添加[],但是如果我添加它们有多个记录。

这是来自 SQL 查询的代码:

        while (oResultSet.next()) {
            JSONObject list = new JSONObject();

            list.accumulate("nombre", oResultSet.getString("nombre"));
            list.accumulate("goles", oResultSet.getInt("goles"));
            json.accumulate("list", list);

        }

        return json;

如果你有不止一张记录,我会回来的一个例子

   {"list":[{"nombre":"Josele","goles":5},{"nombre":"Edu","goles":4}]}

现在是一个带有单个记录的示例

   {"list":{"nombre":"Eduard","goles":2}}

如您所见,他缺少 [],并且我希望在创建 json 失败时也显示为 manerjar。

我希望当我有一张唱片时,我也会看到 []

感谢关注

4

1 回答 1

0

答案是:不要使用.accumulate(),因为这正是它的作用。

在循环之前显式创建并添加JSONArray到您的对象。json在你的循环中,检索它并添加到它:

JSONObject json = new JSONObject();
json.put("list", new JSONArray());
...

while (oResultSet.next()) {
    JSONObject obj = new JSONObject();
    obj.accumulate("nombre", oResultSet.getString("nombre"));
    obj.accumulate("goles", oResultSet.getInt("goles"));
    json.getJSONArray("list").add(obj);
}
于 2014-03-03T21:19:33.460 回答