json - 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”值,我应该怎么做?
我使用 [] 和 () 尝试了许多变体,但对我没有用。
谢谢你。
解决方案
Debug.Print scriptControl.Eval("obj['Realtime Currency Exchange Rate']['5. Exchange Rate'];")`
...但是为了您自己的理智和安全,您不应该使用这种方法来解析 JSON - 而是使用 VBA-JSON 库
推荐阅读
- sql - 通过 Access 数据库优化循环
- vue.js - Vue路由器视图不显示孩子
- javascript - 重新渲染页面后点击事件不会被触发
- javascript - 我如何覆盖未导出的模块方法
- rest - 将请求实体链接到其他一些实体 symfony
- javascript - 如何将 mongoose ObjectIds 数组转换为字符串数组?
- c# - 在缩放状态下滚动/移动 MS 图表区域到突出显示的数据点
- angular - 在 Angular 2 组件中使用未声明类型的数组进行过滤
- java - 为什么允许在 Java 中捕获抛出异常的子类型
- primeng - PrimeNG 的顶部导航栏设计