查看: 107  |  回复: 0
  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楼
发表于 2025年4月4日 00:34

复杂点:

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

各级只要加点就行。

您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com