dongpaozhi5734 2017-12-21 18:53
浏览 125
已采纳

如何在$ .ajax方法的success属性中访问对象的元素?

function getReportedInfo(id) {
    $.ajax({
        url: 'includes/get_data.php',
        type: 'POST',
        data: {id:id},
        dataType: 'json',
        success: function(data) {
            console.log(data);
        }
    });
};

The JSON object returned from the get_data.php script is:

{
    id: 5, 
    username: "Anthony", 
    status: "accupied"
}

I am able to the length of the data object if I do console.log(data.length). However, I can see the object when I console.log(data) in the success property. I am not able to access the elements of the data obejct if I do console.log(data.username), doing this displays undefined in the console. I created a variable, data1, outside the scope of the function getReportedInfo and assigned the data retrieved via the success property to this variable after I tried to display the constents of data1 outside the function.

  • 写回答

2条回答 默认 最新

  • doyrte8419 2017-12-21 18:57
    关注

    Sounds like data is a string not an object. You can convert this to an object by using JSON.parse. Try the following code.

    function getReportedInfo(id) {
        $.ajax({
            url: 'includes/get_data.php',
            type: 'POST',
            data: {id:id},
            dataType: 'json',
            success: function(data) {
                var dataObject = JSON.parse(data);
                console.log(dataObject.username);
            }
        });
    };
    

    Edit

    After discussing with OP in comments below, it was determined the object returned data was in a structure like the following, and is already in an object form (not a string)

    {
        "0": {
            id: 5, 
            username: "Anthony", 
            status: "accupied"
        }
    }
    

    Therefor the following code should work.

    function getReportedInfo(id) {
        $.ajax({
            url: 'includes/get_data.php',
            type: 'POST',
            data: {id:id},
            dataType: 'json',
            success: function(data) {
                console.log(data["0"].username);
            }
        });
    };
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值