首页 /编程语言和算法/VB6/VBA/ASP
 VB6 读取JSON字符串,利用eval
2025年3月10日 23:58

新建From1(窗体),代码:

Private Sub Form_Load()
    Dim ScriptObj As Object
    Dim s$: s = "{'code':'2','a': {'arr': [1,2,3,4,5] }, 'b': {'b': 6} }"
    
    Set ScriptObj = CreateObject("MSScriptControl.ScriptControl")
    ScriptObj.Language = "JavaScript"
    ScriptObj.AddCode "var Json = " & s & ";"

    Debug.Print ScriptObj.eval("Json.code")
    Debug.Print ScriptObj.eval("Json.a.arr[0]")
    Debug.Print ScriptObj.eval("Json.b.b")
End Sub

可以看到我们的Json数据,实际上在代码中可以先把双引号替换成单引号放在代码中:

Dim s$: s = "{""a"": {""arr"": [1,2,3,4,5] }, ""obj"": {""b"": 6} }"
或
Dim s$: s = "{'code':'2','a': {'arr': [1,2,3,4,5] }, 'b': {'b': 6} }"

运行结果:

2
 1 
 6


 
全部回复(1)
  • 引用1楼

    复杂点:

    Private Sub Form_Load()
        Dim ScriptObj As Object
        Dim s$: s = "{'code':'2','a': {'arr': [1,2,3,4,5] }, 'b': {'b1': {'b2':{'b3':789}}} }"
        
        Set ScriptObj = CreateObject("MSScriptControl.ScriptControl")
        ScriptObj.Language = "JavaScript"
        ScriptObj.AddCode "var Json = " & s & ";"
    
        Debug.Print ScriptObj.eval("Json.b.b1.b2.b3")
    End Sub

    运行结果:

     789

    各级只要加点就行。

  • 首页 | 电脑版 |