Javascript 如何使用JS/Ajax请求访问JSON中的嵌套对象
我有一个嵌套的JSON,希望通过ajax请求访问数据,并用html填充表格 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: {
{
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)“我应该索引什么@空白姓名现在我已经搞定了。参考他们的答案。