我有一个看起来像这样的JSON响应
[
{
"alias": "Server1",
"hostgroup_worst_service_state": "0",
"status_history": {
"status": [
"0",
"2",
"0",
"0"
]
}
},
{
"alias": "Server2",
"hostgroup_worst_service_state": "0",
"status_history": {
"status": [
"0",
"0",
"0",
"0"
]
}
},
{
"alias": "Server3",
"hostgroup_worst_service_state": "0",
"status_history": {
"status": [
"1",
"1",
"1",
"0"
]
}
}
]
我可以使用.each迭代器函数轻松访问别名和hostgroup_worst_state:
$.each(data, function(i, item) {
console.log(item.alias)
console.log(item.hostgroup_worst_service_state)
}
但是我很难访问状态数据。我需要以这种方式显示它们:
["0","2","0","0"]
["0","0","0","0"]
["1","1","1","1"]
接下来,这些值将用于使用jQuery Sparklines显示图形。
感谢您的帮助,
答案 0 :(得分:3)
您有一个对象数组,其中每个对象都有一个名为status_history
的属性,该属性指向另一个具有名为status
的属性的对象,该属性包含您需要的数组。因此,要访问此数组,请使用以下命令:
$.each(data, function () {
console.log(this.status_history.status);
});
请注意this
内的.each()
是指您迭代的每个对象/值。它相当于使用以下内容:
$.each(data, function (i, item) {
console.log(item.status_history.status);
});
此外,如果您想要一个具有给定状态数据的数组,您可以使用$.map()
:
var arr = $.map(data, function (el) {
return [ el.status_history.status ];
});
答案 1 :(得分:1)
结果将包含所需的数组。
var result = [];
for(var i = 0; i < data.length; i++) {
result.push(data[i].status_history.status);
}
答案 2 :(得分:0)
将数据转换为元素,比如数据 然后
for(i=0;i<data.length;i++)
{
console.log(data.status_history.status);
}