使用javascript解析作为JSON响应返回的java地图

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

我通过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格式解析和显示我的数据。

你拥有的是一个对象,而不是一个数组。 只有数组具有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中inheritance的方法。

你有它作为对象或JSON?

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

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

获得对象后,可以使用以下方法遍历键:

 for (var key in obj) { console.log(key + ': ' + obj[key]); } 

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

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