0

我知道我们可以使用以下来处理一个简单的 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() 函数没有给出预期的输出id,并且xyz_id在控制台中没有上述响应。

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

4

3 回答 3

4

你可以试试这个:

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

希望这会有所帮助!

于 2013-04-25T18:00:14.363 回答
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);
});

演示:http: //jsfiddle.net/abBcW/

于 2013-04-25T18:03:16.843 回答
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);
});​
于 2013-04-25T18:10:38.440 回答