Spring返回一个带有四个属性的json编码对象。其中一个是名为“array”的属性。我想要这个数组的内容。
这是整个json的回应:
ee
{"map":null,"array":[{"id":2,"description":"Cloud For Dev","businessSize":2,"businessType":9,"businessLocation":3},{"id":3,"description":"Cloud For Prod","businessSize":2,"businessType":9,"businessLocation":3}],"string":null,"bool":false}
0
我真的不确定“ee”或0是什么意思......无论如何,我试图像这样解析它:
$.ajax({
type: "GET",
url: "/ajax/rest/teamService/list",
dataType: "json",
success: function (response) {
var teamArray = response.array;
var $el = $("#teamSelect");
$el.empty();
$.each(teamArray[0], function(team) {
alert(team.description);
$el.append($("<option></option>").attr("value", team.id).text(team.description));
});
// Reattach the plugin
$("#teamSelect").selectbox("detach");
$("#teamSelect").selectbox("attach");
},
error: function (jqXHR, textStatus, errorThrown) {
if (textStatus === 'error') {
setTimeout(function() { window.location = '/do/login'; }, 7000);
}
}
});
我正在弹出警报框6次(应该是2),并且每次都显示“未定义”而不是实际描述。
选择框本身有四个空选项。
好像我正在迭代json编码对象的四个参数,而不是封闭数组的两个内容。
我该如何解决这个问题?
答案 0 :(得分:1)
试试这个 - teamArray[0]
应该只有teamArray
$.each(teamArray, function(i,team) {
alert(team.description);
$el.append($("<option></option>").attr("value", team.id).text(team.description));
});
答案 1 :(得分:0)
现在,你正在循环teamArray[0]
的键,因此有6个警报。循环teamArray
。另外,$.each
的回调takes indexInArray, valueOfElement
。也许不是jQuery通过:
for(var i = 0; i < teamArray.length; i++) {
var team = teamArray[i];
...
}