VBA解析JSON数据(3)--JavaScript

163 篇文章 16 订阅
56 篇文章 4 订阅

既然JSON来自于JavaScript,那么用JS想必可以更方便的解析JSON,非常幸运的是VBA中可以使用JS。
示例JSON数据如下所示。

{
      "applySn": "粤G妆网备字2017050113",
      "applySnTT": "",
      "apply_enter_address": "",
      "enterpriseName": "广州市金日精细化工有限公司",
      "enterpriseNameTT": "",
      "is_off": "N",
      "newProcessid": "20170421153208vq3fu",
      "off_date": "",
      "org_name": "",
      "processid": "20170421153208vq3fu",
      "productName": "悠莅雅柔美亮肤按摩霜",
      "productNameTT": "",
      "provinceConfirm": "2017-05-17"
}

示例代码如下。

Sub JSON_JS()
    Dim objJS As Object
    Dim strJSON As String
    Dim strJSCode As String
    strJSON = [a1]
    Set objJS = CreateObject("MSScriptControl.ScriptControl")
    objJS.Language = "javascript"
    strJSCode = "var json = " & strJSON & ";"
    objJS.AddCode (strJSCode)
    For i = 4 To 16
        Cells(i, 2).Value = objJS.Eval("json." & Cells(i, 1))
    Next
    Set objJS = Nothing
End Sub

代码解析
第6行代码使用后期绑定的方式创建ScriptControl对象,如果使用前期绑定方式,需要在VBE中先引用Microsoft Script Control 1.0
第7行代码指定ScriptControl对象的语言为JavaScript。
第8行代码为JS代码,创建对象变量json
第9行为ScriptControl对象添加代码。
第10行到第12行代码在循环过程中,使用Eval获取json对象的Value。

运行示例代码,结果如下。
在这里插入图片描述
单步运行第9行代码之后,【本地窗口】如下所示,可以看到在objJS对象中的json类型为Variant/Object/JScriptTypeInfo,其中保存的就是需要定位的JSON数据,但是VBA无法直接获取其中的Key,能够实现的是使用第11行代码中的objJS.Eval方式利用Key获取Value。
在这里插入图片描述
使用JS解析的方式如何获取Key呢?请听下回分解。


相关博文链接:
VBA解析JSON数据(1)-- Split函数
VBA解析JSON数据(2)–正则表达式
VBA解析JSON数据(3)–JavaScript
VBA解析JSON数据(4)–JavaScript进阶
VBA解析JSON数据(5)–JavaScript回写Excel

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值