0

これは、JQueryを介してAJAXを実行するために現在使用しているコードです。

       $.ajax({
            type: "POST",
            url: linktopage,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                $.each(data, function (index, item) {
                    alert(item.productId);
                });
            },
            error: function (xhr, status, error) {

            }
        });

ここで、index=dおよびitem="[{" productId ":5284598}、{" productId ":5790923}]"ですが、alert(item.productId)が定義されていない場合、各productIdにアクセスするにはどうすればよいですか?

4

2 に答える 2

1

あなたの例では、アイテムの配列があります。これを繰り返して、productId を取得する必要があります。

for( var i = 0; i < item.length; i++ ){
 console.log(item[i].productId);
}

編集

データがまだ文字列である可能性があります。その場合は、

data = JSON.parse(data);

繰り返す前に。(解析の詳細: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/parse )

このように(最初に文字列かどうかをテストすることもできます):

$.ajax({
        type: "POST",
        url: linktopage,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            if( typeof data == "string" )data = JSON.parse(data);
            $.each(data, function (index, item) {
                alert(item.productId);
            });
        },
        error: function (xhr, status, error) {

        }
});
于 2013-01-17T19:48:40.953 に答える
1

あなたの場合、データは文字列エントリです。そのため、最初に JSON に解析する必要があります。コードをこれに更新します

$.ajax({
            type: "POST",
            url: linktopage,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                var dta = $.parseJSON(data);
                $.each(dta , function (index, item) {
                    alert(item.productId);
                });
            },
            error: function (xhr, status, error) {

            }
        });
于 2013-01-17T19:49:17.613 に答える