新建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
复杂点:
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
各级只要加点就行。