Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用JS/Ajax请求访问JSON中的嵌套对象_Javascript_Html_Ajax_Request - Fatal编程技术网

Javascript 如何使用JS/Ajax请求访问JSON中的嵌套对象

Javascript 如何使用JS/Ajax请求访问JSON中的嵌套对象,javascript,html,ajax,request,Javascript,Html,Ajax,Request,我有一个嵌套的JSON,希望通过ajax请求访问数据,并用html填充表格 JSON如下所示: { sum: { total: 2, }, data: [ { id: '1', attributes: { employee: 'B', age: 13, adress: 'ABCD' }, }, { id: '2', attributes: {

我有一个嵌套的JSON,希望通过ajax请求访问数据,并用html填充表格

JSON如下所示:

{
  sum: {
    total: 2,
  },
  data: [
    {
      id: '1',
      attributes: {
        employee: 'B',
        age: 13,
        adress: 'ABCD'
      },
    }, {
      id: '2',
      attributes: {
        employee: 'A',
        age: 12,
        adress: 'ABC'
      },
    }
  ]
};
$(document).ready(function(){
$.getJSON("http://localhost:8000/api/employee", function (data){
    var requested_data = "";
    var i = 0;
    $.each(data, function(key,value){
        requested_data += "<tr>";
        requested_data += "<td>" + value.data[i].attributes.employee + "</td>";
        requested_data += "<td>" + value.data[i].attributes.age + "</td>";
        requested_data += "<td>" + value.data[i].attributes.adress + "</td>";
        requested_data += "</tr>";
        i++;
    $("#requested_table").append(requested_data);
    })
});
});
我正试图这样发送请求:

{
  sum: {
    total: 2,
  },
  data: [
    {
      id: '1',
      attributes: {
        employee: 'B',
        age: 13,
        adress: 'ABCD'
      },
    }, {
      id: '2',
      attributes: {
        employee: 'A',
        age: 12,
        adress: 'ABC'
      },
    }
  ]
};
$(document).ready(function(){
$.getJSON("http://localhost:8000/api/employee", function (data){
    var requested_data = "";
    var i = 0;
    $.each(data, function(key,value){
        requested_data += "<tr>";
        requested_data += "<td>" + value.data[i].attributes.employee + "</td>";
        requested_data += "<td>" + value.data[i].attributes.age + "</td>";
        requested_data += "<td>" + value.data[i].attributes.adress + "</td>";
        requested_data += "</tr>";
        i++;
    $("#requested_table").append(requested_data);
    })
});
});
$(文档).ready(函数(){
$.getJSON(“http://localhost:8000/api/employee,函数(数据){
要求的var_数据=”;
var i=0;
$。每个(数据、函数(键、值){
请求的_数据+=“”;
请求的_data+=“”+value.data[i].attributes.employee+“”;
请求的_data+=“”+value.data[i].attributes.age+“”;
请求的_data+=“”+value.data[i].attributes.address+“”;
请求的_数据+=“”;
i++;
$(“#请求的#表”)。追加(请求的#表数据);
})
});
});
我总是在控制台中遇到此错误:

未捕获的TypeError:无法读取未定义的属性“attributes”


您需要使用
data.data
这将返回JSON数组,然后使用键值访问相同的数组

演示代码

var数据={
总数:{
总数:2,
},
数据:[{
id:'1',
属性:{
雇员:“B”,
年龄:13岁,
地址:ABCD
},
}, {
id:'2',
属性:{
雇员:“A”,
年龄:12岁,
地址:ABC
},
}]
};
$(文档).ready(函数(){
要求的var_数据=”;
/*$.getJSON(“http://localhost:8000/api/employee,函数(数据){*/
//在这里使用data.data
$.each(数据、数据、函数(键、值){
//直接使用属性
请求的_数据+=“”;
请求的_data+=“”+value.attributes.employee+“”;
请求的_data+=“”+value.attributes.age+“”;
请求的_data+=“”+value.attributes.address+“”;
请求的_数据+=“”;
})
$(“#请求的_表”).html(请求的_数据);//此行应位于每个循环之外
/*})*/
});


嗯,我不明白你的意思。。。如果我用[key]替换[I],我会得到错误“index.js:7 Uncaught TypeError:无法读取未定义的at对象的属性‘sum’。(index.js:7)“我应该索引什么@空白姓名现在我已经搞定了。参考他们的答案。