使用ajax获取json数据时出错

时间:2018-01-17 09:00:12

标签: javascript jquery json ajax

我有一些来自我的PHP代码的json数据,这是

{"Inboxunreadmessage":4,
 "aaData":[{
     "Inboxsubject":"Email SMTP Test",
     "Inboxfrom":"Deepak Saini <*****@*****.co.in>"},
  {"Inboxsubject":"Testing01",
     "Inboxfrom":"Deepak Saini <**********@gmail.com>"}
]}

我像这样把它弄成了

$(window).load(function(){
    $.ajax({
        dataType: "json",
        type: "POST",
        url: "/mail/mail-action",
        data: {
            _act: "load"
        }
    }).done(function(data) {
        if(data.message){
            showMessage(data);
        }
     //This is working 
        $('.Inboxunreadmessage').html(data.Inboxunreadmessage);
     //This is Not working ----------------------
        $('.Inboxsubject').html('<li><a href="#"><i class="fa fa-users text-aqua"></i> '+data.Inboxsubject+'</a></li>');
    }).error(function(jqxhr, exception){
        ajaxErrorHandler(jqxhr, exception);
    });
});

我在

中收到错误
$('.Inboxsubject').html('<li><a href="#"><i class="fa fa-users text-aqua"></i> '+data.Inboxsubject+'</a></li>');

2 个答案:

答案 0 :(得分:1)

您正在使用错误的JSON路径访问数据。

data.Inboxsubject应更改为data.aaData[0].Inboxsubject。这将打印data.aaData数组的第一个收件箱主题。

既然data.aaData是一个数组,你可以循环它以打印出所有收件箱主题。

var blockhtml="";
for(var i=0;i<data.aaData.length;i++)
{
    blockhtml= blockhtml+'<li><a href="#"><i class="fa fa-users text-aqua"></i> '+data.aaData[i]["Inboxsubject"]+'</a></li>'
}

$('.Inboxsubject').html(blockhtml);

答案 1 :(得分:1)

您收到的数据中有一个数组,其中包含更多数据......

{
    "Inboxunreadmessage":4,
    "aaData":[{
        "Inboxsubject":"Email SMTP Test",
        "Inboxfrom":"Deepak Saini <*****@*****.co.in>"
    }, {
        "Inboxsubject":"Testing01",
        "Inboxfrom":"Deepak Saini <**********@gmail.com>"
    }]
}

所以要获得你要使用的第一个主题......

data.aaData[0].Inboxsubject

获得你将要使用的下一个...

data.aaData[1].Inboxsubject

要解析所有aaData个对象,您可以使用此...

data.aaData.forEach(function(aa) {
    // here you have aa.Inboxsubject and aa.Inboxfrom
});