我有一个 servlet,它返回 json 数据,例如:
{"type1":"value1","type2":"value2"}{"type1":"value3","type2":"value4"}
然后我想使用 ajax 获取这些数据来在 html 中绘制表格:
function showTable() {
$.ajax('../json', {
method: 'GET',
success: function (users) {
var result = "<tr>" +
"<th>type1</th>" +
"<th>type2</th>" +
"</tr>";
for (var i = 0; i < users.length; i++) {
result += "<tr>" +
"<td>"+users[i].type1+"</td>" +
"<td>"+users[i].type2+"</td>" +
"</tr>";
}
var table = document.getElementById("showtable");
table.innerHTML(result);
}
});
}
但是什么也没发生。
Servlet:
public class JsonController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/json");
PrintWriter writer = new PrintWriter(resp.getOutputStream());
for (Object j : DBController.getController().getUsersInJSON()) {
writer.append(j.toString());
writer.flush();
}
}
这就是getUsersInJson()
好像。它从一些 ArrayList<User>
获取数据数组并返回 JSONArray :
public JSONArray getUsersInJSON() {
JSONArray array = new JSONArray();
for (User user : DBController.getController().get()) {
JSONObject jUser = new JSONObject();
jUser.put("name", user.getName());
jUser.put("login", user.getLogin());
jUser.put("email", user.getEmail());
jUser.put("role", user.getRole().getName());
jUser.put("country", user.getCountry());
jUser.put("city", user.getCity());
array.put(jUser);
}
return array;
}
出问题了吗?
最佳答案
您做错了,您已将变量包含在引号中,因此值不会被替换。这样做:
$.ajax('../json', {
method: 'GET',
success: function (users) {
var result = "<tr>" +
"<th>type1</th>" +
"<th>type2</th>" +
"</tr>";
for (var i = 0; i < users.length; i++) {
result += "<tr>" +
"<td>"+users[i].type1+"</td>" +
"<td>"+users[i].type2+"</td>" +
"</tr>";
}
var table = document.getElementById("showtable");
table.innerHTML(result);
}
});
关于java - 如何在ajax中使用json数组? (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45304959/