JSON数据可以多层嵌套,如何获取JSON数据长度呢?其实并不需要遍历全部数据,使用JS代码可以轻松获取数据长度。
示例JSON数据如下,数据共用3组。
{
"people":[
{
"firstName":"Brett",
"lastName":"McLaughlin",
"email":"brettM@abc.com"
},
{
"firstName":"Jason",
"lastName":"Hunter",
"email":"jasonH@nbc.com"
},
{
"firstName":"Elliotte",
"lastName":"Harold",
"email":"elharoH@mbc.com"
}
]
}
示例代码如下。
Sub JasonArryLength()
Dim Json As String, JS As Object
Json = "{ ""people"": " & _
"[{ ""firstName"": ""Brett"", ""lastName"":""McLaughlin"", ""email"": ""brett@newInstance.com"" }," & _
"{ ""firstName"": ""Jason"", ""lastName"":""Hunter"", ""email"": ""jason@servlets.com"" }, " & _
"{ ""firstName"": ""Elliotte"", ""lastName"":""Harold"", ""email"": ""elharo@macfaq.com"" }]}"
Set JS = CreateObject("ScriptControl")
JS.Language = "JScript"
fun = "function getlen(s) { return eval('(' + s + ').people.length'); }"
JS.AddCode fun
MsgBox JS.Run("getlen", Json)
Set JS = Nothing
End Sub
【代码解析】
第3行代码为JSON字符串。
第7行代码创建对象。
第8行代码指定JS语言。
第9行代码创建JS代码,其中使用length
属性返回数据长度。
第10行代码添加JS代码。
第11行代码运行JS代码,结果如下。