json - VBA中使用ScriptControl解析JSON : transform resul

我想用Microsoft ScriptControl 在VBA 中解析一个JSON 字符串,然后将得到的Object 转换成Dictionary 和Collection 对象。我已经知道如何使用 ScriptControl 进行解析,但不知道如何将结果映射到 Dictionary 和 Collection 类中。我猜想如果我能弄清楚如何循环遍历对象的属性,这就会变得很清楚...

Dim sc As ScriptControl
Dim obj As Variant

Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"

Set obj = sc.Eval("("+json+")") ' json is a string containing raw JSON

' Now what?

顺便说一下,我用过 vba-json库来获取字典和集合方面的输出,但我发现这个库有点慢。它不使用 ScriptControl。

编辑:我在 this 中找到了关于获取对象属性的讨论。邮政。

最佳答案

使用 JavaScript 解析 JSON 的功能,在 ScriptControl 之上,我们可以在 VBA 中创建一个解析器,它将列出 JSON 中的每个数据点。无论数据结构多么嵌套或多么复杂,只要我们提供一个有效的 JSON,这个解析器就会返回一个完整的树结构。

JavaScript 的 Eval、getKeys 和 getProperty 方法为验证和读取 JSON 提供构建 block 。

结合 VBA 中的递归函数,我们可以遍历 JSON 字符串中的所有键(直到第 n 级)。然后使用树控件(在本文中使用)或字典甚至在简单的工作表上,我们可以根据需要排列 JSON 数据。

VBA 代码:http://ashuvba.blogspot.in/2014/09/json-parser-in-vba-browsing-through-net.html

关于json - VBA中使用ScriptControl解析JSON : transform result to dictionaries and collections,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10691644/

相关文章:

cmake - 如何指定要在共享库构建中使用的链接器标志 [cmake]

php - 在 PHP 中重定向之前的等待时间

google-chrome-extension - 当我们在扩展弹出窗口之外单击时自动关闭如何保持打

python - curl :(7)无法连接到::1:网络无法访问

php - 使用 youtube api 查找观看次数最少的视频?

git - 编译或下载静态版本的 git

php - 日志中时间戳的时区?

user-interface - IIS Express 图标是什么意思?

google-chrome-extension - 在生产和开发环境中处理 URL

android - scrollview 在 android 中滚动到中间