【问题标题】:loop over JSON data from AJAX Success?循环来自 AJAX Success 的 JSON 数据?
【发布时间】:2021-03-16 14:12:40
【问题描述】:

我从 PHP 页面收到这样的 Json 输出

[{"x":"2018-03-20","y":1,"z":7},{"x":"2018-03-22","y":31,"z":5},{"x":"2018-03-25","y":7,"z":21}]

如何遍历结果以便可以访问每个元素?我尝试过类似下面的方法,但这似乎不起作用。

function LoadResultMorris()
{
$.ajax({
    type: "POST",
    url: 'admin/data.php',
    data: {type1: 'search1'},
    success: function(data){
$.each(data.data, function(key, value) {
    alert(data[key]);
    alert(data[value]);
});
        }
});

}

【问题讨论】:

    标签: jquery json ajax


    【解决方案1】:

    按以下格式循环所有对象列表

    $.each(JSON.parse(data.data), function(key,obj) {
       //Access Property in format Object.Atribute
       alert(obj.x); //X Atribute
       alert(obj.y); //Y Atribute
       alert(obj.z); //Z Atribute
    }); 
    

    【讨论】:

    • 谢谢!我尝试了您的代码,如下所示,但它对我不起作用,我看不到错误 function LoadResultMorris() { $.ajax({ type: "POST", url: 'admin/data.php', data: {type1: 'search1'}, success: function(data){ $.each(data.data, function(key,obj) { alert(obj.x); alert(obj.y); alert(obj.z); }); } }); }
    • post 方法的结果是什么? data.data 是 json 类型还是字符串?如果您的响应是字符串类型,请尝试使用 $.each(JSON.parse(data.data), function ........
    • 它返回一个 Json 类型,我注意到我在可能的代码中有错误,我用数据替换 data.data 但问题仍然存在function LoadResultMorris() { $.ajax({ type: "POST", url: 'admin/data.php', data: {type1: 'search1'}, success: function(data){ $.each(data, function(key,obj) { //Access Property in format Object.Atribute alert(obj.x); //X Atribute alert(obj.y); //Y Atribute alert(obj.z); //Z Atribute }); } }); }
    • 应用此代码后会收到什么错误消息? @marie_dev
    • 您是否在控制台中看到任何错误消息?你确定 data.data 有内容吗?尝试使用 console.log(data.data) 查看数组的内容。 @marie_dev
    【解决方案2】:

    鉴于您正在使用的数据结构是一个简单的对象数组,jQuery 在这里并不是必需的。您可以使用标准的forEach() 循环,按名称访问对象的属性。试试这个:

    // mock AJAX response:
    let data = [{"x":"2018-03-20","y":1,"z":7},{"x":"2018-03-22","y":31,"z":5},{"x":"2018-03-25","y":7,"z":21}];
    
    // inside the AJAX success handler:
    data.forEach(object => {
      console.log(object.x, object.y, object.z);
    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 2014-02-17
      • 1970-01-01
      相关资源
      最近更新 更多