所需对象:循环访问JSON数据时出现'[undefined]'错误

时间:2015-11-21 09:03:56

标签: json asp-classic

我正在使用Google Translation API,它以JSON格式返回结果 - 例如

{
 "data": {
  "translations": [
   {
    "translatedText": "Hola mundo"
   },
   {
    "translatedText": "Te amo"
   },
   {
    "translatedText": "queso"
   }
  ]
 }
}

我正在尝试使用Classic ASP解析JSON数据。

我正在使用ASPJSON(http://www.aspjson.com/)来解析JSON数据。

我可以阅读数据到目前为止 - 例如(其中“BackFromGoogle”)是来自MSXML2.ServerXMLHTTP调用的objXML.responseText。

Set oJSON = New aspJSON

oJSON.loadJSON(BackFromGoogle)

For Each translation In oJSON.data("data") 'iterate through data
    Set this = oJSON.data("data").item(translation)
Next    

如果我再尝试:

For Each translation In oJSON.data("data") 'iterate through data
    Set this = oJSON.data("data").item(translation)
    Response.Write this.item("translations").item("translatedText")
Next    

然后我收到此错误:

Microsoft VBScript运行时错误'800a01a8' 需要的对象:'[undefined]'

对于这一行:

Response.Write this.item("translations").item("translatedText")

我很难通过语法来允许我访问“translatedText”行的各个值。

是否可以访问它们?

1 个答案:

答案 0 :(得分:2)

最终有了这项工作。

通过此解决方案找到答案: VbScript Deserialize JSON

这对它进行了排序:

Set oJSON = New aspJSON

oJSON.loadJSON(BackFromGoogle)

For Each result In oJSON.data("data")("translations")
Set this = oJSON.data("data")("translations").item(result)
        response.Write this.item("translatedText") & "<br>"
Next