如何在javascript中从接收到的REST API数组中提取值?
我已经被困在这个问题上8个小时了,所以我终于发布了寻求帮助的帖子: 我试图从javascript文件中的RESTAPI响应中提取数据。REST API数据返回一个对象数组,如下所示:如何在javascript中从接收到的REST API数组中提取值?,javascript,arrays,json,rest,Javascript,Arrays,Json,Rest,我已经被困在这个问题上8个小时了,所以我终于发布了寻求帮助的帖子: 我试图从javascript文件中的RESTAPI响应中提取数据。REST API数据返回一个对象数组,如下所示: [{"start":"2017-04-21 14:40:00","hire":"no","address":"The Monument","offer_id":"z554"}, {"start":"2017-04-21 14:40:00","hire":"no","address":"The Gate","of
[{"start":"2017-04-21 14:40:00","hire":"no","address":"The
Monument","offer_id":"z554"},
{"start":"2017-04-21 14:40:00","hire":"no","address":"The
Gate","offer_id":"z123"},
{"start":"2017-04-21 14:40:00","hire":"yes","address":"The
Port","offer_id":"z999"}] }
我需要从每个元素中提取地址值,以便将其作为参数传递给另一个名为updateAddressBook()的函数
据我所知,响应数据是JSON格式的,因此我必须将其解析为javascript对象,然后遍历数组并提取地址信息
$.get('http://xxxx/,
function (data) {
var obj = $.parseJSON(data);
$.each(obj.data, function (index, value) {
updateAddressBook(address)
}
});
这个代码显然是错误的,但希望有人能告诉我哪里出了问题
非常感谢您的帮助,
谢谢 如果您的API发送的数据已经是JSON格式的,那么您不需要在收到响应时将其转换为对象,jquery会为您这样做。此外,还需要从迭代对象中获取address属性:value.address。代码应该是这样的
$.get('http://xxxx/',
function (data) {
$.each(data, function (index, value) {
updateAddressBook(value.address)
}
});
另外,在JSON正确后,请尝试以下操作:
$.getJSON('http://xxxx/', function (data) {
$.each(data, function (index, value) {
updateAddressBook(value.address);
});
});
JSON的末尾有一个额外的} 一些观察结果:
- 您的
不是有效的JSON
JSON
- 它的结构应该是这样的
- 如果响应是一个
,则无需再次解析它。通过使用JSON对象
迭代JSON,可以直接访问地址 演示循环
var jsonObj=[{
“开始”:“2017-04-21 14:40:00”,
“雇用”:“否”,
“地址”:“地址1”,
“纪念碑”:“纪念碑1”,
“报价id”:“z554”
},
{
“开始”:“2017-04-21 14:40:00”,
“雇用”:“否”,
“地址”:“地址2”,
“门”:“门2”,
“报价单id”:“z123”
}, {
“开始”:“2017-04-21 14:40:00”,
“雇佣”:“是”,
“地址”:“地址3”,
“端口”:8082,
“报价id”:“z999”
}
];
for(jsonObj中的变量i){
UpdatedDressbook(jsonObj[i].地址);
}
函数UpdatedDressbook(地址){
控制台日志(地址);
}
您在此处输入的JSON不是有效的JSON。不幸的是,这似乎不起作用,不确定原因。我试着发出警报(“测试”);在循环中,但它不会执行。如果我将alert语句放在$的正上方。每一行,我都会看到警报出现。如果在循环上方执行警报(数据),它会说什么?已设法将其修复,但还有另一个问题!value.address似乎未定义。如果我这样做:address=value.address;警报(地址);它弹出为未定义,并且没有地址被传递给另一个函数。知道为什么吗!?log(value)并查看它所说的话抱歉我犯了错误,现在一切都很好。非常感谢。