[英]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.