Javascript 按名称获取JSON对象的属性
我正在尝试使用JSON保存关于一组视频的信息。我已经成功地读取了JSON文件,但是在尝试访问该对象的属性时遇到了一些困难。当我尝试访问数组“fastvideos”时,尽管数组作为对象加载,Javascript 按名称获取JSON对象的属性,javascript,json,Javascript,Json,我正在尝试使用JSON保存关于一组视频的信息。我已经成功地读取了JSON文件,但是在尝试访问该对象的属性时遇到了一些困难。当我尝试访问数组“fastvideos”时,尽管数组作为对象加载,obj.fastvideos[x]仍然未定义 这是我的JSON的问题,还是我试图访问对象的方式的问题 JSON { "fastvideos": [{ "video-title": "sampletitle", "video-tags": "tag1, tag2, tag3", "vide
obj.fastvideos[x]
仍然未定义
这是我的JSON的问题,还是我试图访问对象的方式的问题
JSON
{
"fastvideos": [{
"video-title": "sampletitle",
"video-tags": "tag1, tag2, tag3",
"video-desc": "sample-desc",
"video-url": "https://www.youtube.com/watch?v=<redacted>"
}, {
"video-title": "sampletitle2",
"video-tags": "tag1, tag2, tag3",
"video-desc": "sample-desc-2",
"video-url": "https://www.youtube.com/watch?v=<redacted>"
}]
}
连字符要求您使用括号符号访问属性
视频标题
和视频url
此外,对getJSON
的调用不会返回JavaScript对象,而是返回对jqXHR
对象的引用。您实际上不需要在您的案例中使用该对象,因为您有一个函数正在侦听成功的回调。该函数的参数将包含已解析的JavaScript对象
$.getJSON("videolist.json", function(obj){
document.getElementById("demo").innerHTML =
obj.fastvideos[1]["video-title"] + ": URL = " + obj.fastvideos[1]["video-url"];
});
如何迭代视频:
var obj=
{
“快速视频”:[{
“视频标题”:“sampletitle”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述”,
“视频url”:https://www.youtube.com/watch?v="
}, {
“视频标题”:“sampletitle2”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述-2”,
“视频url”:https://www.youtube.com/watch?v="
}]
};
对于(var i=0;i }
连字符要求您使用括号符号访问属性视频标题
和视频url
此外,对getJSON
的调用不会返回JavaScript对象,而是返回对jqXHR
对象的引用。您实际上不需要在您的案例中使用该对象,因为您有一个函数正在侦听成功的回调。该函数的参数将包含已解析的JavaScript对象
$.getJSON("videolist.json", function(obj){
document.getElementById("demo").innerHTML =
obj.fastvideos[1]["video-title"] + ": URL = " + obj.fastvideos[1]["video-url"];
});
如何迭代视频:
var obj=
{
“快速视频”:[{
“视频标题”:“sampletitle”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述”,
“视频url”:https://www.youtube.com/watch?v="
}, {
“视频标题”:“sampletitle2”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述-2”,
“视频url”:https://www.youtube.com/watch?v="
}]
};
对于(var i=0;i
试试这个
var tArray = {
"fastvideos":
[ {
"video-title": "sampletitle",
"video-tags": "tag1, tag2, tag3",
"video-desc": "sample-desc",
"video-url": "https://www.youtube.com/watch?v=<redacted>"
},
{
"video-title": "sampletitle2",
"video-tags": "tag1, tag2, tag3",
"video-desc": "sample-desc-2",
"video-url": "https://www.youtube.com/watch?v=<redacted>"
}
]
};
alert(tArray["fastvideos"][0]["video-title"])
for(var i=0; i<tArray["fastvideos"].length; i++){
alert( tArray["fastvideos"][i]["video-title"] );
}
var tArray={
“快速视频”:
[ {
“视频标题”:“sampletitle”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述”,
“视频url”:https://www.youtube.com/watch?v="
},
{
“视频标题”:“sampletitle2”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述-2”,
“视频url”:https://www.youtube.com/watch?v="
}
]
};
警报(tArray[“快速视频”][0][“视频标题”])
对于(var i=0;i试试这个
var tArray = {
"fastvideos":
[ {
"video-title": "sampletitle",
"video-tags": "tag1, tag2, tag3",
"video-desc": "sample-desc",
"video-url": "https://www.youtube.com/watch?v=<redacted>"
},
{
"video-title": "sampletitle2",
"video-tags": "tag1, tag2, tag3",
"video-desc": "sample-desc-2",
"video-url": "https://www.youtube.com/watch?v=<redacted>"
}
]
};
alert(tArray["fastvideos"][0]["video-title"])
for(var i=0; i<tArray["fastvideos"].length; i++){
alert( tArray["fastvideos"][i]["video-title"] );
}
var tArray={
“快速视频”:
[ {
“视频标题”:“sampletitle”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述”,
“视频url”:https://www.youtube.com/watch?v="
},
{
“视频标题”:“sampletitle2”,
“视频标签”:“tag1、tag2、tag3”,
“视频描述”:“示例描述-2”,
“视频url”:https://www.youtube.com/watch?v="
}
]
};
警报(tArray[“快速视频”][0][“视频标题”])
对于(var i=0;其他人发布了一些关于迭代的信息,如果您看到了,您是否可以对其进行扩展?我仍然对obj
不包含fastvideos
——特别是“TypeError:obj.fastvideos未定义”存在问题。这是for循环的开始。但是,我刚刚注意到它似乎确实存在于某个地方:我现在看到了问题…$。getJSON
返回一个jqXHR
对象,它不是您要找的对象。您已经列出了回调,所以我重新排列了代码。请尝试我更新的解决方案。谢谢!好的,下面是这是一些更好的结果。我认为一切都必须在getJSON()
方法内部完成,对吗?目前,它内部的一切都在工作,但迭代(在方法外部)除外即使单独声明了var obj
,其他人也发布了一些关于迭代的信息,如果你看到了,你可能会对其进行扩展吗?我仍然对obj
不包含fastvideos
——特别是“TypeError:obj.fastvideos未定义”存在问题。这是for循环的开始。但是,我刚刚注意到它似乎确实存在于某个地方:我现在看到了问题…$。getJSON
返回一个jqXHR
对象,它不是您要找的对象。您已经列出了回调,所以我重新排列了代码。请尝试我更新的解决方案。谢谢!好的,下面是这是一些更好的结果。我认为一切都必须在getJSON()
方法内部完成,对吗?目前,它内部的一切都在工作,但迭代(方法外部)没有,即使单独声明了var obj