首页 > 解决方案 > VBA 中的嵌套 JSON。无法访问值

问题描述

这是我的 JSON 结构:

{
    "Realtime Currency Exchange Rate": {
        "1. From_Currency Code": "AUD",
        "2. From_Currency Name": "Australian Dollar",
        "3. To_Currency Code": "USD",
        "4. To_Currency Name": "United States Dollar",
        "5. Exchange Rate": "0.70856660",
        "6. Last Refreshed": "2018-10-23 17:37:03",
        "7. Time Zone": "UTC"
    }
}

我正在使用的代码:

Dim scriptControl As Object

Set scriptControl = CreateObject("MSScriptControl.ScriptControl")
scriptControl.Language = "JScript"

With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "https://www.alphavantage.co/query?function=CURRENCY_EXCHANGE_RATE&from_currency=AUD&to_currency=USD&apikey=demo", False
        .send
        scriptControl.Eval "var obj=(" & .responseText & ")"
End With

如何访问 VBA 中的值?例如,如果我想访问“5. Exchange Rate”值,我应该怎么做?

我使用 [] 和 () 尝试了许多变体,但对我没有用。

谢谢你。

标签: jsonexcelvba

解决方案


Debug.Print scriptControl.Eval("obj['Realtime Currency Exchange Rate']['5. Exchange Rate'];")` 

...但是为了您自己的理智和安全,您不应该使用这种方法来解析 JSON - 而是使用 VBA-JSON 库


推荐阅读