2014-03-03 31 views
0

我有一個Java的json-lib庫的問題,事實證明,如果我只有一個記錄我沒有添加[]的JSON,但如果你有如果我添加它們,則會有多條記錄。java的json-lib庫的錯誤

這是我的代碼是來自一個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}} 

正如你可以看到他缺乏[],並且我想也出現在manerjar當我創建json失敗。

我希望當我有一個單獨的記錄也出現了我[]

感謝您的關注

+0

等等,那麼你的問題是什麼? –

+0

對不起,如果你還沒有理解我。我希望當我有一個單一的紀錄也出現在我的[] – user3376542

回答

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); 
} 
+0

哦!非常感謝你,完美地工作。雖然方法「put」:'json.getJSONArray(「list」)。put(list);'不正確,必須是'json.getJSONArray(「list」).add(list);'其他所有東西都完美,非常感謝:D – user3376542

+0

@ user3376542哎呀,對不起,我正在json.org上關閉javadoc,他們已經過時了。我會編輯。 –