|
本帖最后由 逍遥爱迪生 于 2025-3-24 16:02 编辑
3-24添加了取节点工具》》
逍遥vba64位Json模块,史上最强,没有第二!
支持读取数组元素数量,添加,删除,修改值
可以在VBA中按快捷键:ctrl+M 直接导入类:XiaoYaoVbaJson.cls
支持多级路径方问:Json("a.b[2].c")
Dim Json As New XiaoYaoVbaJson
Dim jsonString As String
jsonString = "{ ""Name"": ""John"", ""age"": 30, ""city"": ""New York"" ,""obj1"":{""a"":3,""b"":""s2""} }"
Json.SetJsonStr jsonString
MsgBox Json("Name")
Json("Name") = "逍遥"
MsgBox Json("Name")
- Sub ExcelJson测试()
- Dim Json As New XiaoYaoVbaJson
- Dim jsonString As String
-
- jsonString = "{ ""Name"": ""John"", ""age"": 30, ""city"": ""New York"" ,""obj1"":{""a"":3,""b"":""s2""} }"
- If Not Json.SetJsonStr(jsonString) Then '设置JSON字符串
- MsgBox "json数据格式有误"
- Exit Sub
- End If
- Debug.Print "GetAllKeys=" & Join(Json.GetAllKeys, ",") '取回所有键名
- Debug.Print "GetAllKeys=" & Join(Json.GetAllKeys("obj1"), ",")
- Debug.Print "TypeNameJs=" & Json.TypeNameJs("obj1") '取某个键的数据类型
- Debug.Print "Name TypeNameJs=" & Json.TypeNameJs("Name")
- Debug.Print "TypeNameJs=" & Json.IsType("obj1", "Object") '检测是字符,数字还是数组
- Debug.Print "TypeNameJs(age)=" & Json.IsType("age", "number")
- Debug.Print "age TypeNameJs=" & Json.TypeNameJs("age")
- Debug.Print "Name=" & Json.Item("Name") '取值
- Json.Item("age") = 40 '改值
- Json("age") = 41 '可以不需要用Item
- Debug.Print "KeysCount=" & Json.KeysCount("")
- Debug.Print "年纪=" & Json("age")
-
- Json.ItemEx("Arr1") = "[3,4,5]" '添加一个元素:数组类型
- Debug.Print "TypeName2('Name',Arr1,age,obj1)=" & Json.TypeName2("Name") & "," & Json.TypeName2("age") & "," & Json.TypeName2("Arr1") & "," & Json.TypeName2("obj1")
- Debug.Print "GetAllKeys=" & Join(Json.GetAllKeys("Arr1"), ",")
- Debug.Print "读取Json数组的值:" & Json.Item("Arr1[0]")
- Debug.Print "数组成员数:" & Json.Item("Arr1.length")
- Debug.Print Json.eval("JsonObj.age") 'eval方式支持更高级操作
- Debug.Print Json.GetJsonStr("")
- Call Json.RemoveArrayByIndex("Arr1", 1) '删除数组中第2个值
-
-
- Debug.Print "GetJsonStrObject=" & Json.GetJsonStrObject(Json.JsonObj.Arr1)
- Call Json.ArrayAdd("Arr1", "abcd") '插入数组一个值
-
- Debug.Print "Arr1[2]=" & Json.Item("Arr1[2]")
- Json.Item("Arr1[2]") = "3344"
- Debug.Print "Arr1[2]=" & Json.Item("Arr1[2]")
-
- Debug.Print "GetJsonStrObject=" & Json.GetJsonStrObject(Json.JsonObj.Arr1)
- Dim obj1 '防止IDE首字母大写
- Debug.Print "GetJsonStrObject=" & Json.GetJsonStrObject(Json.JsonObj.obj1)
- Debug.Print "stringify=" & Json.stringify("obj1")
- Debug.Print "stringify=" & Json.stringify()
-
- End Sub
复制代码
|
评分
-
1
查看全部评分
-
|