ASP vbscript无法检测JSON对象

时间:2011-01-25 14:20:47

标签: json asp-classic vbscript

strJSON = getcontent(url)

数据返回如下

{"error":{"type":"OAuthException","message":"Error validating access token."}}

然后我可以通过

轻松检索它
set return= JSON.parse(strJSON)

从这里我可以通过下面的

轻松地检索内部的所有值
response.write return.error.type
response.write return.error.message

BUT

如果我response.write return.error.otherobjectnotexist

它将返回错误Object doesn't support this property or method: 'otherobjectnotexist'

当我确切地知道我将得到的对象是什么时,这很好。

在现实生活中,我们不会知道什么是返回,什么不是。特别是当json从第三方网站返回时。

例如,我使用facebook connect来检索用户的打开图形值并以json的形式返回。

有些用户填写了“性别”,因此facebook会返回此对象。 有些用户从不填写“性别”,因此Facebook永远不会返回此对象。

我的程序默认为response.write return.gender

如果我没有办法检测对象是否存在,并且ASP直接抛出错误使整个程序停止,那将会很麻烦......

专家!有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在尝试访问不存在的属性时处理该方案。您可以捕获错误并做出相应的反应,例如

' change error handling to carry on in error
on error resume next
' get the property
dim prop: prop = return.gender
if err.number <> 0
    'do something (or nothing)
    err.clear
end if
' reset error handling
on error goto 0

答案 1 :(得分:1)

您可以测试对象是否存在

如果isObject(NameOfObjectGoesHere)那么......