循环浏览Youtube搜索JSON响应
我正在使用ASPJson处理ASP和JSON(它曾经在此前托管http://www.aspjson.com/但该网站已不存在,但我从该网站获得的代码位于:https://pastebin.com/LJzikNAT )循环浏览Youtube搜索JSON响应
这是我的电话到Youtube - 例如:
https://www.googleapis.com/youtube/v3/search?part=id&q=london&type=video&key=[my_key]
返回该JSON数据:
{
"kind": "youtube#searchListResponse",
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/o9DTjpevDXudxmhkLef6i-kAnRE\"",
"nextPageToken": "CAUQAA",
"regionCode": "GB",
"pageInfo": {
"totalResults": 1000000,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#searchResult",
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/Qq093B1iIdU7htjV5jYf2Erqxgk\"",
"id": {
"kind": "youtube#video",
"videoId": "5DniDm9epIY"
}
},
{
"kind": "youtube#searchResult",
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/gbHSPn7IT-2OJG19vQZzKKTbG1s\"",
"id": {
"kind": "youtube#video",
"videoId": "Zlu542Tx8Fc"
}
},
{
"kind": "youtube#searchResult",
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/KQSQBNAk2ArZd_XrpDOIfiMT0XM\"",
"id": {
"kind": "youtube#video",
"videoId": "2tufxwCyrmE"
}
},
{
"kind": "youtube#searchResult",
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/wrbmiGkrH9v_QvtNpoIurXH9YQc\"",
"id": {
"kind": "youtube#video",
"videoId": "1XU8AOZ0Inw"
}
},
{
"kind": "youtube#searchResult",
"etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/2sdAsprKoDKIt8mNVYd8prR8uVA\"",
"id": {
"kind": "youtube#video",
"videoId": "vUO6kYLb6As"
}
}
]
}
这是我的ASP代码,试图厕所通过结果号码:
<!--#INCLUDE file="../dist/asp/c.asp" -->
<!--#INCLUDE file="../dist/asp/aspJSON.asp" -->
<%
my_api = "my_key"
sendstring1 = "https://www.googleapis.com/youtube/v3/search?part=id&q=chester&type=video&key="&my_api&""
Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXML.Open "GET", sendstring1 , false
objXML.Send()
BackFromGoogle1 = objXML.responseText
Set oJSON = New aspJSON
oJSON.loadJSON(BackFromGoogle1)
For Each result In oJSON.data("items")
Set this = oJSON.data("items").item(thingy)
var_id = this.item("id").item("videoId")
embed_code = "<iframe width='800' height='450' src='https://www.youtube.com/embed/"&var_id&"?rel=0&wmode=opaque' frameborder='0' allowfullscreen></iframe>"
response.write embed_code
Next
%>
麻烦的是,因为我遍历它的ID在var_id
变量返回总是5DniDm9epIY
,这是第一视频的ID - 它似乎并没有被改变每次通过循环,我不知道为什么?
var_id
显示5次,因此代码可以看到“items”集合中有5个注释,但它并不是每次都通过循环转到下一个节点。
该For Each
永远不会引用参考result
对象,它将包含当前的枚举值。
设置this
到oJSON.data("items").item(thingy)
将仅引用oJSON.data("items")
集合中的第一个枚举值。不知道什么thingy
是,但如果你在这种情况下,复制从其他地方这个代码,应该是你与枚举对象,result
应使用(好像你从here得到它,然后在For Each
但没有改变thingy
到result
在代码中使用它)。
把上面一行
Set this = oJSON.data("items").item(result)
到oJSON.data("items")
集合中的引用返回到当前枚举对象。
意识到我以前写过关于此的内容,但自从我使用这个库以来已经有一段时间了。
谢谢你的帮忙@Lankymart。问题解决了。 – 4532066
[使用VBScript访问JSON数据的所有值]的可能的复制(http://stackoverflow.com/questions/41610139/using-vbscript-to-access-all-values-in-json -data) – Lankymart