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、コンソールで上記の応答を返します。

id と xyz_id の値を取得するために関数で使用する JavaScriptにいくつかのforループがありますか?onSuccess()

4

3 に答える 3

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 配列に適用されます。

したがって、JSON 配列を取得しresponse.xyzsて、その配列の各要素をループできます。

 $.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 に答える