使用javascript解析作为JSON响应返回的java映射

Parsing java map returned as JSON response using javascript

本文关键字:返回 响应 java 映射 JSON javascript 使用      更新时间:2023-09-26

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

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

{
"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中实现继承的方法。

您将其作为对象还是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只是将其视为字符串,因此您将无法直接访问它。此外,一些较旧的浏览器没有窗口。因此,如果您担心旧浏览器的支持,则需要包含json2.js库。