我正在使用ASPJson处理ASP和JSON(它曾经在不久前托管在这里http://www.aspjson.com/但该网站已不再存在,但我从该网站获得的代码在这里:{{3 }})
这是我对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
%>
问题在于,当我循环播放时,var_id
变量中返回的ID始终为5DniDm9epIY
,这是第一个视频的ID - 它似乎不是每次都在循环中改变,我不确定为什么?
var_id
显示5次,因此代码可以看到&#34;项目中有5个音符&#34;集合,但每次循环都不会出现在下一个节点上。
答案 0 :(得分:0)
For Each
从不引用引用包含当前枚举值的result
对象。
将this
设置为oJSON.data("items").item(thingy)
只会引用oJSON.data("items")
集合中的第一个枚举值。不确定thingy
是什么,但如果您从其他地方复制此代码应该是您要枚举的对象,在这种情况下result
应该使用(看起来你从{ {3}}然后将thingy
更改为result
中的For Each
,但未将其更改为代码中使用的位置。
将该行更改为
Set this = oJSON.data("items").item(result)
返回对oJSON.data("items")
集合中当前枚举对象的引用。
已经意识到我之前已经写过这篇文章,但是自从我使用这个库以来已经有一段时间了。