使用ASP Xtreme Evolution解析经典ASP中的JSon

时间:2012-05-08 13:09:23

标签: json asp-classic

我正在开发一个经典的ASP项目,我使用ASP Xtreme Evolution来解析JSon数据(在这里找到:http://zend.lojcomm.com.br/entries/classic-asp-json-revisited/

无论如何......我正确地获得了大部分JSon数据,但现在我被困在了一个数组上。

JSon看起来像这样:

{
  "Product": {
    "ID": "6666",
    "Name": "Tha name",
    "ArticleGroup": [
      {
        "@handleas": "array",
        "Title": "Title 1",
        "Article": {
          "ID": "777",
          "Label": "Label 1",
        }
      },
      {
        "@handleas": "array",
        "Title": "Title 2",
        "Article": {
          "ID": "888",
          "Label": "Label 2",
        }
      }
    ]
    }
  }
}

ASP看起来像这样:

set xmlHTTP = server.createobject("MSXML2.ServerXMLHTTP.6.0")
xmlHTTP.open "GET", "http://source.of.json", false
xmlHTTP.send()
ProductFeed = xmlHTTP.ResponseText

dim ProductInfo : set ProductInfo = JSON.parse(join(array(ProductFeed)))

    dim key : for each key in ProductInfo.Product.keys()
        Response.Write ProductInfo.Product.ID ' Prints 6666
        Response.Write ProductInfo.Product.Name ' Prints Tha Name
    Next
    set ProductInfo = nothing

我的问题是我无法弄清楚如何访问ArticleGroup中的信息。我得到的只是[object Object],[object Object]或空值。

有人有什么想法吗?

感谢名单!

1 个答案:

答案 0 :(得分:2)

尝试以下内容(基于给定的JSON):

Dim ArticleGroup

dim key : For Each key in ProductInfo.Product.keys()
    Response.Write ProductInfo.Product.ID ' Prints 6666
    Response.Write ProductInfo.Product.Name ' Prints Tha Name            

    For Each ArticleGroup In ProductInfo.Product.Get("ArticleGroup") '' iterate all ArticleGroup entries
        Response.write ArticleGroup.Get("Title") '' get the correct key value
    Next
Next

您需要迭代所有ArticleGroup条目并通过.get(keyName)获取值。否则它将返回JScript函数体。