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 = ditem = "[{"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 回答