kxing 发表于 2013-6-25 19:11:13

[已解决]求助规范读取json数据

本帖最后由 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>来分段。
求高人指点,多谢!

twnet 发表于 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)

kxing 发表于 2013-6-26 13:10:09

原来可以用javascript来处理。
感谢楼上指点...

kxing 发表于 2013-6-26 17:39:51

再请教下,怎么样能读取整个对象的文本呢?

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

我想将"x1":{..}数据截出来呢?应该有类似的方法吧?
xml就能用oxml.xml方法取得。
感谢回答。。。

kxing 发表于 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从头开始饮用吗?

辛苦大侠解答下。。。。。

htmgyv 发表于 2017-3-13 08:35:42

很好。学习啦!

auto 发表于 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 运行
页: [1]
查看完整版本: [已解决]求助规范读取json数据