如何在vba中解析JavaScript对象?

JavaScript中所有的数据都可以是对象,除了一些内置的对象外,还可以创建新的对象。

当创建新的对象时,JavaScript对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:

var person={firstname:"Bill", lastname:"Gates", id:5566};

当要访问对象的属性时,可以有以下两种方式:

name=person.lastname;
name=person[“lastname”];

可以通过以下的vba代码解析JavaScript对象

Sub QQ1722187970()
    Dim sJS As String
    Dim arrElement
    Dim obj()
    'JS对象
    sJS = "{firstname:""Bill"", lastname:""Gates"", id:5566}"
    Dim oHtml As Object
    '定义HtmlDocument对象
    Set oHtml = CreateObject("htmlfile")
    Dim oWindow As Object
    Set oWindow = oHtml.parentWindow
    With oWindow
        .execScript "var obj=" & sJS
       '用callbyname获取js对象的属性值
       Debug.Print VBA.CallByName(.obj, "firstname", VbGet)
    End With
End Sub

上文中使用IHTMLWindow2接口的execScript方法运行JavaScript语句。

       

发表评论