0
{ "id": "36", "title": "Dr","firstname": "Ian", "lastname": "Fletcher", "permissions": { "permissionlist": [{ "title": "Images", "accessid": "152"},{ "title": "Documents", "accessid": ""}] } }

上記のデータを含む ajax コールバックがあり、データの一部を取得するのに助けが必要です。

ID、役職名、姓などのコールバック データからデータを取得できましたが、権限を取得するのに苦労しています。

success: function(data) {

                    jQuery.each(data, function(index, itemData) {
                        $('#<%=txtTitle.ClientID %>').val(itemData.title);
                        $('#<%=txtFirstName.ClientID %>').val(itemData.firstname);
                        $('#<%=txtSurname.ClientID %>').val(itemData.lastname);

                        jQuery.each(itemData.permissions, function(index, permissionData) {
                            alert(permissionData.title);
                        });
                    });
                }

アクセス許可をリストとして使用して各機能を使用しようとしましたが、アラートは常に未定義と表示されます。これのどこが間違っているのですか?

4

4 に答える 4

3

itemData.permissions配列ではなくオブジェクトです。配列はプロパティにありますpermissionlist

jQuery.each(itemData.permissions.permissionlist, function(index, permissionData) {
                            alert(permissionData.title);
                        });
于 2013-01-22T14:13:47.693 に答える
2

dataajax 呼び出しから返されたオブジェクトです。各レベルでプロパティをループすると、構造が表示されます

function success(data) {
    // data
    jQuery.each(data, function (index, itemData) {
        alert('index=' + index + ', itemData=' + itemData);
    });
    // data.permissions
    jQuery.each(data.permissions, function (index, itemData) {
        alert('index=' + index + ', itemData=' + itemData);
    });
    // data.permissions.permissionlist
    jQuery.each(data.permissions.permissionlist, function (index, itemData) {
        alert('index=' + index + ', itemData=' + itemData);
    });
    // ...
}

success(data);

テスト用のJSFiddle

于 2013-01-22T14:23:59.557 に答える
2

間違ったプロパティを反復処理しています。アクセス許可内にはまだpermissionListがあります:

jQuery.each(itemData.permissions.permissionList, function(index, permissionData) {
  alert(permissionData.title);
});
于 2013-01-22T14:14:14.007 に答える
2

permissionspermissionListオブジェクトの配列を含む要素を持つオブジェクトです。配列を反復処理するのではなく、permissionlistオブジェクト自体を反復処理します。使用する:

jQuery.each(itemData.permissions.permissionlist)

も使用できますが、それは最初のタイトルpermissionData[0].titleしか取得しません。

これを作成するのに十分な回数、このような質問を見てきました: https://github.com/ajcrites/json-visualize/

ここでこの質問に使用されていることがわかります:http://jsfiddle.net/4cb2b/

于 2013-01-22T14:17:47.440 に答える