无法从JSON响应中的类列表中获取项目

时间:2016-09-08 10:39:23

标签: jquery json

在.Net中我使用的是一个AJAX调用,它返回一个类列表,在此列表中,其中一个属性是Email \ Contact信息列表。

当我从Web方法中获取JSON数据时,我正在迭代它并根据需要获取信息,直到我来遍历Email \ Contact Information列表。

使用此代码

if (data.d[0].Emails.length > 0) {
       $.each(data.d[0].Emails, function () {
           var something = "";
       });
    }

对象data.d [0] .Emails的长度大于0,如果我使用调试器查看这个,我可以看到我期待的所有值。

但是,我遇到的问题是当我进入$ .each data.d [0]时。电子邮件变得未定义,我所追踪的所有信息都将丢失。

在Visual Studio中进行调试时,我得到的消息是数据'未定义

我将很高兴了解我出错的方式和地点,并能够获取信息。

这是整个ajax方法

$.ajax({
        type: "POST",
        url: "Admin.aspx/GetCmcContactInformation",
        data: JSON.stringify(params),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {

            var d = data.d;
            console.log(d);
            $("#MainContent_txtAddressLine1").val(data.d[0].AddressLine1);
            $("#MainContent_txtAddressLine2").val(data.d[0].AddressLine2);
            $("#MainContent_txtCity").val(data.d[0].City);
            $("#MainContent_txtPostcode").val(data.d[0].PostCode);
            $("#MainContent_txtCmcComments").val(data.d[0].Notes);

            if (data.d[0].Emails.length > 0) {

                if (data.d[0].Emails.length > 0) {
                    $.each(data.d[0].Emails, function (index, email) {
                        var something = "";
                    });
                }
            }

            $("#saveModal").modal("hide");
        },
        error: function (data) {
            console.log("error :" + data);
            console.log(data);
            $("#saveModal").modal("hide");
            $("#newUser").hide("slow");

        }
    });

感谢

西蒙

1 个答案:

答案 0 :(得分:1)

它可能只是您的示例代码,但似乎您使用了错误的方法签名进行回调。如果您参考$.each的文档,则需要为回调定义两个参数。在下面的示例代码中,每个项目都可以在email参数中找到:

if (data.d[0].Emails.length > 0) {
   $.each(data.d[0].Emails, function (index, email) {
       var something = "";
   });
}