我应该如何从这个JSON中检索PitcherID?我正在使用http://aspjson.com中的课程。
JSON
[
{
"PitcherID": "456068"
},
{
"PitcherID": "431148"
}
]
代码
oJSON.loadJSON("...")
For Each thing In oJSON.data("PitcherID")
Set this = oJSON.data("PitcherID").item(thing)
response.write this.item("PitcherID")
Next
错误
Microsoft VBScript runtime error '800a01c3'
Object not a collection
答案 0 :(得分:1)
根据我的经验,使用JScript作为服务器端脚本语言比使用aspjson类要容易得多。您可以按如下方式呈现JSON对象
<%@language="javascript"%>
<!DOCTYPE html>
<html>
<body>
<%
var oJSON =[
{
"PitcherID": "456068"
},
{
"PitcherID": "431148"
}
]
for (i in oJSON)
{
Response.write((oJSON[i].PitcherID) + "<br />");
}
%>
</body>
</html>
我意识到如果json处理只是页面的一部分并且其余部分使用VBScript,这可能会导致问题,但是你可以使用<script runat="server">
在VBS页面中执行服务器端JS,例如
<%@language="VBScript"%>
<!DOCTYPE html>
<html>
<head>
<script language="javascript" runat="server">
var oJSON =[
{
"PitcherID": "456068"
},
{
"PitcherID": "431148"
}
]
var strout = ""
for (i in oJSON)
{
strout = strout + ((oJSON[i].PitcherID) + "<br />");
}
</script>
</head>
<body>
<% Response.write strout %>
</body>
</html>
答案 1 :(得分:1)
问题是来自http://aspjson.com的课程是有限的,我个人总是发现很难找到如何使用它的正确例子。
Object not a collection
错误?非常简单,你试图像数组/集合一样迭代的对象不是一个。
这一行
For Each thing In oJSON.data("PitcherID")
将失败,因为oJSON.data("PitcherID")
不是集合对象,这意味着您无法遍历它。要使PitcherID
可枚举,源JSON结构看起来更像是
{
"PitcherID": [
"456068",
"431148"
]
}
例如。