找回密码
 加入
搜索
查看: 5463|回复: 7

[效率算法] [已解决]求助规范读取json数据

[复制链接]
发表于 2013-6-25 19:11:13 | 显示全部楼层 |阅读模式
本帖最后由 kxing 于 2013-6-26 13:10 编辑

请问下有没类似于 xml dom等等方法读取json数据的呢?
用正则只能匹配一些结构简单的,多层嵌套就无从下手了。
比如这类的:
"x1":{"profile":"xxx","sex":"xxx","age":"xxx","x2":{"profile":"xxx","sex":"xxx","age":"xxx"}}...
里面的数据根本不知道会出现几次货不出现...
用xml就比较好办,因为他有<x>和</x>来分段。
求高人指点,多谢!
发表于 2013-6-25 22:15:19 | 显示全部楼层
$json = '"x1":{"profile":"xxx","sex":"xxx","age":"xxx","x2":{"profile":"xxx","sex":"xxx","age":"xxx"}}'

$oMSSC = ObjCreate('ScriptControl')
$oMSSC.Language = 'JScript'
$oMSSC.AddCode('var ParseJson = {' & $json & '};')
$a = $oMSSC.Eval('ParseJson.x1.x2.profile')                ;获取x1.x2.profile的值
MsgBox('', '', $a)

评分

参与人数 1金钱 +20 贡献 +2 收起 理由
annybaby + 20 + 2 加分!!希望高手多冒泡,指导..

查看全部评分

 楼主| 发表于 2013-6-26 13:10:09 | 显示全部楼层
原来可以用javascript来处理。
感谢楼上指点...
 楼主| 发表于 2013-6-26 17:39:51 | 显示全部楼层
再请教下,怎么样能读取整个对象的文本呢?

比如说
"x1":{"profile":"xxx","sex":"xxx","age":"xxx","x2":{"profile":"xxx","sex":"xxx","age":"xxx"}}...

我想将"x1":{..}数据截出来呢?应该有类似的方法吧?
xml就能用oxml.xml方法取得。
感谢回答。。。
 楼主| 发表于 2013-6-26 18:12:39 | 显示全部楼层
另外在求教下,当$a取得对象后怎样直接操作呢?

比如:
$json = '{"employees": [{ "firstName":"Bill" , "lastName":"Gates" },{ "firstName":"George" , "lastName":"Bush" },{ "firstName":"Thomas" , "lastName":"Carter" }]}'

$oMSSC = ObjCreate('ScriptControl')
$oMSSC.Language = 'JScript'
$oMSSC.AddCode('var ParseJson = ' & $json & ';')
$a = $oMSSC.Eval('ParseJson.employees')
MsgBox(0, $a.length, $a(0).firstName)

length能读出来,但是firstname就不行了。
难道每次都要eval从头开始饮用吗?

辛苦大侠解答下。。。。。
发表于 2017-3-13 08:35:42 | 显示全部楼层
很好。学习啦!
发表于 2019-8-20 11:57:23 | 显示全部楼层
$oMSSC.Language = 'JScript'  这个报错是怎么回事?
发表于 2019-9-17 20:54:14 | 显示全部楼层
auto 发表于 2019-8-20 11:57
$oMSSC.Language = 'JScript'  这个报错是怎么回事?

js 要  x86 运行
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 17:18 , Processed in 0.073790 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表