Java 如何在ajax中使用json数组?(爪哇)
我有一个servlet,它返回json数据,如:Java 如何在ajax中使用json数组?(爪哇),java,jquery,json,ajax,servlets,Java,Jquery,Json,Ajax,Servlets,我有一个servlet,它返回json数据,如: {"type1":"value1","type2":"value2"}{"type1":"value3","type2":"value4"} 然后我想使用ajax获取这些数据,在html中绘制一个表: function showTable() { $.ajax('../json', { method: 'GET', success: function (users) { var
{"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);
}
});
}
这就是getUsersInJson()
的样子。它从一些ArrayList
数组中获取数据并返回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);
}
});
$.ajax(“../json”{
方法:“GET”,
成功:功能(用户){
var result=“”+
“类型1”+
“类型2”+
"";
对于(var i=0;i
您做错了,您在引号中包含了变量,因此值不会被替换。这样做:
$.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);
}
});
$.ajax(“../json”{
方法:“GET”,
成功:功能(用户){
var result=“”+
“类型1”+
“类型2”+
"";
对于(var i=0;i
试试看
$.ajax(“../json”{
方法:“GET”,
成功:功能(用户){
var users=$.parseJSON(用户);
var result=“”+
“类型1”+
“类型2”+
"";
对于(var i=0;i
试试看
$.ajax(“../json”{
方法:“GET”,
成功:功能(用户){
var users=$.parseJSON(用户);
var result=“”+
“类型1”+
“类型2”+
"";
对于(var i=0;i
这不是JSON数组。它根本不是有效的JSON。“+”+用户[i]。类型1+“+”+用户[i]。类型2+“+”代码>你忘了引用。那不是JSON数组。它根本不是有效的JSON。“+”+用户[i]。类型1+“+”+用户[i]。类型2+“+”代码>你忘记引用了。修复了这个问题。仍然没有任何效果。如果能够在脚本函数中看到输出,请尝试console.log(用户)。我尝试了console.log(用户),console.log(用户,长度),没有任何结果,输出为空。但是console.log('1')键入了“1”。这可能与java代码有关。在返回数组之前,请尝试用Java打印数组,如果它打印内容,请打印内容,如{“type1”:“value1”,“type2”:“value2”}{“type1”:“value3”,“type2”:“value4”}
修复了此问题。仍然没有任何效果。如果能够在脚本函数中看到输出,请尝试console.log(用户)。我尝试了console.log(用户),console.log(用户,长度),没有任何结果,输出为空。但是console.log('1')键入了“1”。这可能与java代码有关。在返回数组之前,请尝试用Java打印数组,如果它打印内容,请打印内容,如{“type1”:“value1”,“type2”:“value2”}{“type1”:“value3”,“type2”:“value4”}
$.ajax('../json', {
method: 'GET',
success: function (users) {
var users = $.parseJSON(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);
}
});