Closed. This question needs details or clarity。它当前不接受答案。
想要改善这个问题吗?添加详细信息,并通过editing this post来解决问题。
已关闭6年。
Improve this question
在我的项目中,我使用JSON将读取的数据从数据库传递到客户端。在此代码中,我将JSONObject放入JSONArray并传递到客户端。
这是我的
这是我的JavaScript代码:
我不知道为什么我会在警报中重复相同的结果?
想要改善这个问题吗?添加详细信息,并通过editing this post来解决问题。
已关闭6年。
Improve this question
在我的项目中,我使用JSON将读取的数据从数据库传递到客户端。在此代码中,我将JSONObject放入JSONArray并传递到客户端。
这是我的
JsonProcessing.java
servlet的代码:JSONObject obj = new JSONObject();
JSONArray objarr = new JSONArray();
//read from DB
sql = "SELECT id, name FROM test";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
// Retrieve by column name
int id = rs.getInt("id");
String first = rs.getString("name");
obj.put("name", first);
obj.put("id", id);
objarr.add(obj);
System.out.print("\nobj: "+obj);
}
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print(objarr);
out.flush();
这是我的JavaScript代码:
$.ajax({
url : "/test/JsonProcessing",
type : "get",
data : {
id : 30
},
success : function(info) {
//alert(info.name);
console.log(info);
for (var i = 0; i < info.length; i++) {
alert(i + ": " + info[i].name + " " + info[i].id);
}
// data: return data from server
},
error : function() {
alert('Faild');
// if fails
}
});
我不知道为什么我会在警报中重复相同的结果?
最佳答案
更新您的Java代码,如下所示:
JSONArray objarr = new JSONArray();
//read from DB
sql = "SELECT id, name FROM test";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
JSONObject obj = new JSONObject(); // updated
// Retrieve by column name
int id = rs.getInt("id");
String first = rs.getString("name");
// Display values
System.out.print("\nID: " + id);
System.out.print(", Name: " + first);
obj.put("name", first);
obj.put("id", id);
objarr.add(obj);
System.out.print("\nobj: "+obj);
}
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.print(objarr);
out.flush();