4

我没有找到任何解决以下问题的具体答案。

我通过 AJAX POST 请求获取了以下 JSON 响应。

{
"result":
{
"101010":["PRAVAT","SGSGSG","UKEMP5","UKENTD","WAUK01","MK87UK"],
"202020":["CORA1E","PSASAS","EDCRJS","USHC01","USDR06"],
............................
........................
"304050":["ERCDE2","DELT01","DECGKG","DEHC03","IS02","DEPI01"]
},
"status":"SUCCESS"
}

我想通过在 javascript 中使用循环来显示数据上方的数据。我试过for ( var i = 0; i < response.result.length; i++) {了,但我做不到。

请帮助我如何使用 javascript 以上述 JSON 格式解析和显示我的数据。

4

4 回答 4

6

你所拥有的是一个对象,而不是一个数组。只有数组具有长度属性。要迭代对象,请使用:

$.post("yoururlhere", function(JSONData) {
    var obj = $.parseJSON(JSONData);
    if (obj.status.toLowerCase() === "success") {
        for (var key in obj.result) {
            if (obj.result.hasOwnProperty(key)) {
               console.log(key + ': ' + obj.result[key]);
            }
        }
    }
});

if (obj.result.hasOwnProperty(key)) 强制 for 忽略原型属性。如果您愿意查找它,它们是您可以在 Javascript 中进行继承的方法。

于 2013-06-05T13:40:58.357 回答
4

您将其作为对象还是 JSON?

要将 JSON 转换为 jquery 中的对象,请使用$.parseJSON().

例如。var obj = $.parseJSON(myJSONData);

获得对象后,您可以使用以下方法循环键:

for (var key in obj) {
    console.log(key + ': ' + obj[key]);
}
于 2013-06-05T13:31:49.063 回答
1

你应该解析它,你可以使用JSON.parse()or jQuery.parseJSON()。看看这个:Parse JSON in JavaScript?

于 2013-06-05T13:27:03.687 回答
0

正如 MostafaR 所说,您需要先将其解析为 javascript 对象。当您从某个地方获取 JSON 时,javascript 只是将其视为字符串,因此您将无法直接访问它。此外,一些旧版浏览器没有 window.JSON,因此如果您担心旧版浏览器的支持,则需要包含json2.js 库。

于 2013-06-05T13:34:02.513 回答