如何从JSON响应中检索键/值

时间:2013-04-25 17:56:29

标签: javascript jquery ajax

我知道我们可以使用以下来处理简单的ajax JSON响应

function onSuccess(response) {
    console.log("Service call successful with response"+response);
    $.each(response, function (key, value) {
        console.log(key+" "+value);

    }) ;

但是,如何处理如下所示的JSON响应数组?

{
   "xyzs":[
      {
         "xyz":{
            "id":"515f08380364db3bbe5a27f1",
            "xyz_id":"320224817603309569"
         }
      },
      {
         "xyz":{
            "id":"5161f9880364db3bbea86595",
            "xyz_id":"321033680736886784"
         }
      }
   ]
}

onSuccess()函数未在控制台中给出具有上述响应的预期输出idxyz_id

我在for函数中使用javascript中有一些onSuccess()循环来获取id和xyz_id的值吗?

3 个答案:

答案 0 :(得分:4)

你可以试试这个:

$.each(response.xyzs, function (index, obj) {
   console.log(obj.xyz.id+" "+obj.xyz.xyz_id);
}) ;

希望这会有所帮助!!

答案 1 :(得分:1)

使用此:

var response = {
   "xyzs":[
      {
         "xyz":{
            "id":"515f08380364db3bbe5a27f1",
            "xyz_id":"320224817603309569"
         }
      },
      {
         "xyz":{
            "id":"5161f9880364db3bbea86595",
            "xyz_id":"321033680736886784"
         }
      }
   ]
};

$.each(response.xyzs, function () {
    var cur = this.xyz;
    console.log(cur.id, cur.xyz_id);
});

DEMO: http://jsfiddle.net/abBcW/

答案 2 :(得分:0)

在你的情况下。你有一个json对象,$ .each()将应用于json数组。

因此,您可以通过response.xyzs获取JSON数组,并可以循环遍历该数组的每个元素。

 $.each(response.xyzs, function (key, value) {
        console.log(key+" "+value);   
    }) ;

这里有更清晰的JSON数组循环示例。

var data = [ 
 {"Id": 10004, "PageName": "club"}, 
 {"Id": 10040, "PageName": "qaz"}, 
 {"Id": 10059, "PageName": "jjjjjjj"}
];

$.each(data, function(i, item) {
    alert(data[i].PageName);
});​

$.each(data, function(i, item) {
    alert(item.PageName);
});​