解析json数组

sinitek123 2011-12-22 05:09:07
Sub figjson3() 'ok 可以解析json数组 ,请教高手怎么解析数组嵌套数组.
Dim aa
aa = "{""myname"":""Michael"",""myaddress"":{""city"":""Beijing"",""street"":"" Chaoyang Road "",""postcode"":100025}}"

Set X = CreateObject("ScriptControl")
X.Language = "JScript"

s = "function j(s) { return eval('(' + s + ')'); }"
X.AddCode s
Set y = X.Run("j", aa)

MsgBox y.myname
MsgBox y.myaddress
MsgBox y.myaddress.city
MsgBox y.myaddress.postcode
End Sub


例子
Sub jsontest() 'error
Dim aa
aa = "{ ""people"": [{ ""firstName"": [{'code':'40001','name':'累计折旧/固定资产原值'},{'code':'40005','name':'累值'}], ""lastName"":""McLaughlin"", ""email"": ""brett@newInstance.com"" },{ ""firstName"": 123, ""lastName"":""Hunter"", ""email"": ""jason@servlets.com"" }, { ""firstName"": ""Elliotte"", ""lastName"":""Harold"", ""email"": ""elharo@macfaq.com"" }]}"
Set X = CreateObject("ScriptControl")
X.Language = "JScript"
i = 0
s = "function j(s) { return eval('(' + s + ').people[ " & i & "]'); }"
X.AddCode s
Set y = X.Run("j", aa)

Debug.Print y.firstName.code
Debug.Print y.firstName, y.lastName
End Sub
...全文
1163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝天630902 2013-05-30
  • 打赏
  • 举报
回复
Sub jsontest() Dim aa aa = "var b = { ""people"": [{ ""firstName"": [{'code':'40001','name':'累计折旧/固定资产原值'},{'code':'40005','name':'累值'}], ""lastName"":""McLaughlin"", ""email"": ""brett@newInstance.com"" },{ ""firstName"": 123, ""lastName"":""Hunter"", ""email"": ""jason@servlets.com"" }, { ""firstName"": ""Elliotte"", ""lastName"":""Harold"", ""email"": ""elharo@macfaq.com"" }]}" With CreateObject("MSScriptControl.ScriptControl") .Language = "JScript" .AddCode aa Debug.Print .Eval("b.people[0].firstName[0].code") Debug.Print .Eval("b.people[0].lastName"), .Eval("b.people[1].lastName") End With End Sub
犀山居士 2012-11-06
  • 打赏
  • 举报
回复
用上面的地址下载的JSON对象解析访问成员必须使用对象.Item("属性名")的方式访问,使用ScriptControl对象解析后可以使用对象.属性名直接访问,但郁闷的却是JSON中的数组对象在VB中用对象.属性名(索引号).属性名却不能访问,不知道有没有高手指点一下?
sinitek123 2011-12-26
  • 打赏
  • 举报
回复
谢谢了啊.
笨狗先飞 2011-12-24
  • 打赏
  • 举报
回复
很久没搞了,用那个解析器可以生成json对象的,然后跟普通对象一样的用法,应该是 xx(x).xx(x)这样子吧
笨狗先飞 2011-12-23
  • 打赏
  • 举报
回复
不会啊,能下载,你这是什么网啊,墙这么厉害?
http://www.ediy.co.nz/content.asp?syscmd=dl&ID=A06786CB3E7E4F878FA542DBEE4B60B5
sinitek123 2011-12-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bakw 的回复:]

http://www.ediy.co.nz/vbjson-json-parser-library-in-vb6-xidc55680.html
去这里下载json解析器吧
[/Quote]

链接不上啊
sinitek123 2011-12-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bakw 的回复:]

不会啊,能下载,你这是什么网啊,墙这么厉害?
http://www.ediy.co.nz/content.asp?syscmd=dl&ID=A06786CB3E7E4F878FA542DBEE4B60B5
[/Quote]

估计公司网络拦截了,请问你有解析过json吗,想请教下具体情况.
笨狗先飞 2011-12-22
  • 打赏
  • 举报
回复
http://www.ediy.co.nz/vbjson-json-parser-library-in-vb6-xidc55680.html
去这里下载json解析器吧

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧