【发布时间】:2015-06-24 07:57:19
【问题描述】:
我从 AJAX 调用中获取了一个 JSON 对象,我需要从中获取所有“名称”值。
我尝试以多种不同的方式对其进行迭代,但均未成功。 我之前已经设法迭代 JSON 对象,但现在这些值在 pkg 内部,它在 data 内部:这就是我遇到麻烦的地方。下面的代码不起作用,我不知道如何进入 pkg。
for (var key in jsonData) {
if (jsonData.hasOwnProperty(key)) {
}
jQuery('#result').html(jsonData[key].join("<br/>"));
}
(jsonData.pkg) 或 (jsonData.data.pkg) 都没有成功。
下面是 jsonData 对象内的值。
{
"data": {
"pkg": [{
"name": "ThisIsName1",
"FRONTPAGE": "n",
"IP": "n",
"MAXSQL": "1",
"MAXPOP": "unlimited"
}, {
"name": "ThisIsName2",
"FRONTPAGE": "n",
"IP": "n",
"MAXSQL": "0",
"MAXPOP": "unlimited"
}, {
"name": "ThisIsName3",
"FRONTPAGE": "n",
"IP": "n",
"MAXSQL": "0",
"MAXPOP": "unlimited"
}]
},
"metadata": {
"version": 1,
"reason": "OK",
"result": 1,
"command": "listpkgs"
}
}
我已经在论坛中搜索了答案,但我没有找到将值嵌套在对象中的人。
【问题讨论】:
-
你可以看看here
-
@herriekrekel 我已经完成了 -> var jsonData = JSON.stringify(data);
-
您在一个对象(jsonData)中有一个对象(数据)中有一个数组(pkg)中的对象。如果您的地址为
jsonData.data.pkg[0].name,您将获得ThisISName1。jsonData[key]只会返回一个对象。 here is a fiddle -
看看这个,所有其他答案都不必要地令人困惑。 jsfiddle.net/xmq81s7u
-
@conan JSON.stringify 将对象转换为 JSON 文本并将该 JSON 文本存储在字符串中。 JSON.parse 将一串 JSON 文本转换为一个对象。如果您想在这里使用任何答案,请使用解析看看会发生什么
标签: javascript iteration jsonobject