【发布时间】:2016-08-26 13:04:43
【问题描述】:
我无法在 JSON 对象中获取 JSON 数组的项目。这是我的 JSON 的样子:
[
{
"category":9,
"channels":[
{
"id":5,
"title":"MYTITLE",
"active":true,
"recent":true,
"image":"/arts/736c1ad4-2dbe-40a6-859d-8dba89c26ec2.jpg",
"recent_tracks":{
"vip":"https://api.xyzsite.com/recent_tracks/vip-3.json",
"free":"https://api.xyzsite.com/recent_tracks/free-3.json"
},
"additional_vip_channels":[
{
"channel_name":"vip-3a",
"recent_tracks_uri":"https://api.xyzsite.com/recent_tracks/vip-3a.json",
"streams":{
"320":"http://streams.xyzsite.com/api/914/320/stream",
"64":"http://streams.xyzsite.com/api/914/64/stream",
"192":"http://streams.xyzsite.com/api/914/192/stream"
}
}
],
"streams":{
"free":"http://streams.xyzsite.com/api/31/56/stream",
"free_56":"http://streams.xyzsite.com/api/31/56/stream",
"free_128":"http://streams.xyzsite.com/api/31/128/stream",
"320":"http://streams.xyzsite.com/api/33/320/stream",
"64":"http://streams.xyzsite.com/api/33/64/stream",
"192":"http://streams.xyzsite.com/api/33/192/stream"
}
},
我使用以下代码来获取值:
$.getJSON('https://api.xyzsite.com/channels.json', function(response) {
$.each(response, function (index, value) {
var catId = value.category;
$.each(value.channels, function (index, value) {
XYZApp.channels.push({
categoryId: catId,
id: value.id,
name: value.title,
image: value.image,
recent_tracks: {
vip: value.recent_tracks.vip,
free: value.recent_tracks.free
},
streams: {
free_128: value.streams.free_128,
member_320: value.streams["320"],
member_64: value.streams["64"],
member_192: value.streams["192"]
}
});
console.log(value.additional_vip_channels);
});
});
}).
then ...
我可以获取值,但我无法读取 .each jQuery 函数中的 additional_vip_channels 数组。我已经试过了:
- value.additional_vip_channels.channel_name
- value.additional_vip_channels[0].channel_name
- value.additional_vip_channels["0"].channel_name
但它们都不起作用。
而且日志输出也在这里:
如何获取additional_vip_channels中的channel_name等数据?
【问题讨论】:
-
value.additional_vip_channels[0].channel_name是正确的方法。 -
试试
value.channels["0"].additional_vip_channels["0"].channel_name -
日志按预期显示值然后尝试输出
additional_vip_channels的单个值有什么问题。 -
谢谢,但这两个建议都不起作用。我得到:未捕获的类型错误:无法读取未定义的属性“0”
-
嗯,有些值可能没有
additional_vip_channels属性。在访问之前确保additional_vip_channels存在。
标签: javascript jquery arrays json getjson