簡體   English   中英

如何使用JSONObject創建一個JSONArray,其中包含java中數據庫表的所有值

[英]How to Create a JSONArray using JSONObject with all values from a database table in java

我從數據庫表中獲取詳細信息,該表包含JAVA中的3行。 我正在使用JSONarray和JSONObject,如下所示

JSONObject jsonObject = new JSONObject();
JSONObject mainjsonObject = new JSONObject();
JSONArray ja=new JSONArray();

表中的數據按以下方式放到jsonObject中:

String qry="select * from details";
ResultSet res = select .executeQuery(qry);
while(res.next){

String Name=res.getString("name");
.
.

jsonObject.put("Name", Name);

.

.

ja.put(jsonObject);

}



mainjsonObject.put("PERSONAL DETAILS",ja);

我應該得到輸出json如下:

{
"PERSONAL DETAILS": [
    {
      " name": "abc",
      "age": "4",
      "gender": "F",
      "Place": "abc1"
    },
    {
      " name": "xyz",
      "age": "3",
      "gender": "M",
      "Place": "abc2"
    }


]

}

但我在兩者中獲得相同的值,如下所示:

{

"PERSONAL DETAILS": [

    {

     " name": "abc",

     "age": "4",

     "gender": "F",

      "Place": "abc1"

    },

    {

   " name": "abc",

   "age": "4",

   "gender": "F",

   "Place": "abc1"

    }


]

}

請幫我解決一下。 我需要將表中的所有值作為JSON格式的數組

你需要在循環中創建新的JSONObject ,否則最后的記錄將隨處顯示

while(res.next()){

    String Name=res.getString("name");
    jsonObject = new JSONObject();
    // ^^^^^^^^
    jsonObject.put("Name", res.getString(1));
    jsonObject.put("age", res.getString(2));
    jsonObject.put("gender", res.getString(3));
    jsonObject.put("Place", res.getString(4));
    ja.put(jsonObject);
 }

問題是你一遍又一遍地重復使用相同的JSONObject 這基本上是一張Map

您需要做的是創建一個新的 JSONObject實例並將其放入數組中以進行每次迭代:

JSONObject obj;
while (rs.next()) {
    obj = new JSONObject();
    // fill in obj
    ja.put(obj);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM