我没有找到解决以下问题的具体答案。
我通过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格式解析和显示我的数据。
答案 0 :(得分:4)
您是将它作为对象还是JSON?
要将JSON转换为jquery中的对象,请使用$.parseJSON()
。
EG。 var obj = $.parseJSON(myJSONData);
获得对象后,您可以使用以下方法遍历键:
for (var key in obj) {
console.log(key + ': ' + obj[key]);
}
答案 1 :(得分:3)
你拥有的是一个对象,而不是一个数组。只有数组具有length属性。要迭代对象使用:
$.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中继承。
答案 2 :(得分:1)
您应该解析它,您可以使用JSON.parse()
或jQuery.parseJSON()
。
看看这个:Parse JSON in JavaScript?
答案 3 :(得分:0)
正如MostafaR所说,你需要先将它解析成一个javascript对象。当你从某个地方获得JSON时,javascript只是认为它是一个字符串,所以你将无法直接访问它。此外,一些旧版浏览器没有window.JSON,因此如果您担心旧版浏览器的支持,则需要包含the json2.js library。