标题: 用VBS解析JSON格式数据
作者: Demon
链接: https://demon.tw/programming/vbs-parse-json.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
更多关于JSON的介绍请访问 http://www.json.org/json-zh.html 。
在Google Code上有一个aspjson项目,但是这个项目是用VBS来生成JSON格式的数据,而不是用VBS来解析JSON格式数据。我Google来Google去也没找到现成的能够解析JSON的VBS代码。
解决的方法有三个:第一,根据算法自己写一个解析JSON的库;第二,使用正则表达式匹配需要的数据;第三,用JavaScript来解析。我是很懒的人,第一种方法我肯定是不会用的,用正则表达式似乎不错,但是缺乏灵活性。既然JSON是专门为JavaScript设计的,当然用JavaScript来解析最简单。于是,一切又回到了无所不能的ScriptControl。
为了测试,先写一个简单的PHP,PHP手册上json_encode函数的示例程序:
<?php $arr = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?>
然后用VBS解析:
'Author: Demon 'Website: https://demon.tw 'E-mail: 380401911@qq.com Dim http Set http = CreateObject("Msxml2.XMLHTTP") http.open "GET", "https://demon.tw/test/json.php", False http.send str = http.responseText WScript.Echo str ParseJson str Sub ParseJson(str) Dim sc Set sc = CreateObject("MSScriptControl.ScriptControl") sc.Language = "JScript" sc.AddCode "var o = " & str & ";" a = sc.Eval("o.a") b = sc.Eval("o.b") c = sc.Eval("o.c") d = sc.Eval("o.d") e = sc.Eval("o.e") WScript.Echo a, b, c, d, e End Sub
复杂的例子就不举了,我没有时间,自己举一反三吧。
赞赏微信赞赏支付宝赞赏
随机文章:
路过,菜鸟膜拜大牛!
虽然我对算法知之甚少,但也算开了眼界,原来VBS可以做这么多事!
任何脚本语言支持COM后,就是万能的了。比如ahk au3 按键 ………………
正在思考到这个问题,差点就正则匹配字符串来搞了,刚好看到你这篇文章,及时啊
[…] 曾经写过一篇《用VBS解析JSON格式数据》,里面提到了用 VBS 解析 JSON 的三种方法::第一,根据算法自己写一个解析 JSON 的库;第二,使用正则表达式匹配需要的数据;第三,用 JavaScript 来解析。 […]
http://www.json.org上面有各语言的json函数啊。
vbsEdit5.5.2的64位有没有破解?
64位office无法使用MSScriptControl.ScriptControl
你说得没错,偶见网上有64位MSWinsck.OCX,实际也无法创建MSScriptControl.ScriptControl对i象。