从JavaScript数组中获取JSON对象

3
我有一个这样的Json对象
{
   "  resultArr": [
                   {
                     "ID":"1",
                      "0":"1",
                      "APPROVAL LEVEL":"1",
                      "1":"1",
                      "WorkFlow Type Code":"1",
                      "2":"1",
                      "Employee Number":"825489602V",
                      "3":"825489602V",
                      "Employee Name":"Wajira Wanigasekara",
                      "4":"Wajira Wanigasekara"
                     }
                 ]
}

我正在尝试打印resultArr的键和值。
例如,我想打印ID=1 APPROVAL LEVEL=1.. 就像这样。
我可以使用以下代码获取ID、APPROVAL LEVEL... 的值。
$.ajax({
                    type: "POST",
                    async:false,
                    url: "<?php echo url_for('workflow/getApprovalByModuleView') ?>",
                    data: { viewName: viewName },
                    dataType: "json",
                    success: function(data){

                        alert(data.resultArr[0][3]);
                    }
                });

但我也希望打印出它们的名字...

这意味着我想打印出data.resultArr数组的KEY和VALUE。

我该怎么做呢?

6个回答

3

你可以使用键来选择值。我能想到的唯一方法是通过循环遍历它们:

$.each(data.resultArr, function(index, value) { 
  alert(index + ': ' + value); 
});

2
我相信传递给成功函数的data变量并不是您期望的内容。首先,弄清楚data实际包含的内容。我建议安装Firebug,并且在替换alert的情况下编写以下代码:
console.dir(data);

另外,要检查数据类型,请尝试:

console.log(typeof(data));

现在你知道了数据实际返回的格式,你可以继续处理它。


0 "1"1 "1"2 "1"3 "825489602V"4 "Wajira Wanigasekara"批准级别 "1"员工姓名 "Wajira Wanigasekara"员工编号 "825489602V"ID "1"工作流类型代码 "1"感谢您的评论,返回此内容 - Roshan Wijesena
它返回的是什么数据类型?尝试使用console.log(typeof(data)); - jsalonen

1

JavaScript:

var array = {"key" : "value", "anotherkey" : "anothervalue"};
for (key in array){
    document.write("For the Element " + "<b>"+array[key]+"</b>" 
  + " Key value is  " +"<b>"+key+"</b>"+"<br>");
}

这将从JavaScript数组中获取键和值。

你的问题是,我认为你正在访问两个不同的数组对象。

data.resultArr[0][3] 不等于 data.resultArr[0]["3"],也不等于 data.resultArr[0]["Employee Number"]。第一个将给你“Approval Level”的值,第二个将给你第二个员工号码,最后一个将给你“Employee Number”的值。


1
你可以使用以下代码:
var json = {"resultArr":[{"ID":"1","0":"1","APPROVAL LEVEL":"1","1":"1","WorkFlow Type Code":"1","2":"1","Employee Number":"825489602V","3":"825489602V","Employee Name":"Wajira Wanigasekara","4":"Wajira Wanigasekara"}]};

var data = json.resultArr[0];
for (var key in data){
    document.write(key+":" + data[key]);
}

1
var json = {"resultArr":[{"ID":"1","0":"1","APPROVAL LEVEL":"1","1":"1","WorkFlow Type Code":"1","2":"1","Employee Number":"825489602V","3":"825489602V","Employee Name":"Wajira Wanigasekara","4":"Wajira Wanigasekara"}]};

for(var key in json.resultArr[0]) {
    console.log( key, json.resultArr[0][key] );
}

1

或许这可以帮到你:

function getArrayKeyAndValue(array, index){
    var count = 0;
    for (key in array){
        if(++count == index)
            return [key, array[key]];
    }      
}
var array = {"key1" : "value1", "key2" : "value2", "key3" : "value3"}; document.write(getArrayKeyAndValue(array, 1));

输出结果为:"key1,value1";


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接