- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章vbs 解析json jsonp的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
我收集了三种常见 json jsonp 的格式,因为很多人找我说如何用正则提取某个字符串,我看了下,要么是json,要么是jsonp, 正则简直浪费,比如那种空间里说说的数据,上百条的信息,你正则个P,而且还有回复里的格式也差不多的,所以最好的方法还是解析.
先来看看常见的三种吧:
酷我音乐用户信息 json 格式 http://kzone.kuwo.cn/mlog/UserVal?uid=1237357&from=profile {"work":4,"fans":275,"lp":"{\"id\":1237357,\"username\":\"乱码\",\"pic\":\"http://img3.kuwo.cn/star/userhead/57/55/1315554310390_1237357m.jpg\"}","art":4,"album":1,"fortune":342402,"article":0,"workVideo":1,"care":195,"workAudio":3,"view":1312997,"playlist":0,"listen":278962,"collect":1} 。
拍拍手机查询接口 jsonp 格式 http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=13012345678&amount=10000&callname=cb cb({mobile:'13012345678',province:'重庆',isp:'中国联通',stock:'1',amount:'10000',maxprice:'0',minprice:'0'}),
搜狐IP信息 js 格式 http://pv.sohu.com/cityjson var returnCitySN = {"cip": "218.72.14.14", "cid": "330100", "cname": "浙江省杭州市"},
这几种合适都可以通过 htmlfile 来解析,但是方法稍微有点差异.
先来解析第一种 json 格式的吧.
1
2
3
4
5
6
7
8
9
10
11
12
|
Set
html = CreateObject(
"htmlfile"
)
Set
http = CreateObject(
"Msxml2.ServerXMLHTTP"
)
http.open
"GET"
,
"http://kzone.kuwo.cn/mlog/UserVal?uid=1237357&from=profile"
,
False
http.send
strHtml = http.responseText
' 得到数据
Set
window = html.parentWindow
window.execScript
"var json = "
& strHtml,
"JScript"
' 解析 json
Set
kuwo = window.json
' 获取解析后的对象
WScript.Echo
"访问量:"
, kuwo.view,
" 财富:"
, kuwo.fortune
|
可以得到如下信息.
再来看看 jsonp 的解析,jsonp其实只是多了一个回调函数而已,所以我们自定义一个函数解析他就可以了.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Set
html = CreateObject(
"htmlfile"
)
Set
http = CreateObject(
"Msxml2.ServerXMLHTTP"
)
callback =
"cb"
url =
"http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=13012345678&amount=10000&callname="
& callback
http.open
"GET"
, url,
False
http.send
strHtml = http.responseText
' 得到数据
' cb({mobile:'13012345678',province:'重庆',isp:'中国联通',stock:'1',amount:'10000',maxprice:'0',minprice:'0'});
' <!--[if !IE]>|xGv00|8030d7c308afc4a32846a715ff79e9a3<![endif]-->
' 得到的是这样的数据,所以要处理下
strHtml = Split(strHtml, vbLf)(0)
' 取第一行
Set
window = html.parentWindow
window.execScript
"function "
& callback &
"(o){json=o}"
,
"JScript"
' jsonp 回调函数、
window.execScript strHtml,
"JScript"
' 解析 json
Set
json = window.json
' 获取解析后的对象
WScript.Echo json.mobile, json.isp, json.province
|
可以得到如下信息.
最后看下 js 格式解析,这个是最简单的,什么都不用做,但是你要知道他的变量名.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
Set
html = CreateObject(
"htmlfile"
)
Set
http = CreateObject(
"Msxml2.ServerXMLHTTP"
)
http.open
"GET"
,
"http://pv.sohu.com/cityjson"
,
False
http.send
strHtml = http.responseText
' 得到数据
' 得到 var returnCitySN = {"cip": "218.72.14.14", "cid": "330100", "cname": "浙江省杭州市"};
Set
window = html.parentWindow
window.execScript strHtml,
"JScript"
' 解析 js
Set
js = window.returnCitySN
' 获取解析后的对象
WScript.Echo js.cname, js.cip, js.cid
|
可以得到如下信息 。
js 格式的是最简单的,但要注意,变量名是他定的,所以你在 获取解析后的对象 那一步,要写上他的变量名。 json 格式,我们只要给他加上变量名然后解析即可。 jsonp 相对麻烦点,因为要写一个自定义回调函数.
总的来说,方法差不多,只是解析部分稍微有点不同而已。 用 htmlfile 解析,是不是比 正则 方便?
以后玩 POST 别再用落伍的 instr+mid 或者 正则 去解析 html json了, htmlfile 才是王道.
最后此篇关于vbs 解析json jsonp的方法的文章就讲到这里了,如果你想了解更多关于vbs 解析json jsonp的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我使用 IBM Personal Communications 12.0.3.0 的宏记录器制作了一个凭据输入宏。它只是在调用时输入我的用户名和密码。 sub Credentials() Dim
该批处理更改了 vbs 代码,使其无法供 vbs 使用。我该如何解决这个问题? 批号: echo Const HIGH = 128 >> prio.vbs echo strComputer = "."
我有 2 个 vbs 文件。 A.vbs: Class test public a public b End Class B.vbs: Dim objShell Set objShell =
以下是我用来尝试在 IIS 6 中创建虚拟目录的条目: [Run] Filename: {tmp}\cscript.exe mkvirtdir.vbs; Parameters: "-c LocalHo
核心vbs代码 ? 1
对于vbs中ping的实现可以通过两种方式 : 1、调用系统ping命令; 2、使用wmi查询pingstate类处理。 1、调用系统ping命令
在看vb开发,看到二维数组时突发奇想用二维数组作为游戏关卡; 1. 选择操作: 游戏开始时会提示选择注册, 登录, 退出三种选项, 2.注册: 注册成功会将用户账户与密码存入用户数据txt文档中
复制指定文件到指定目录下 核心代码 ? 1
复制代码 代码如下: On Error Resume Next Dim WshShell, QQPath, QQselect set wshshell=createobject("
运行前请确定你的电脑安装了word。 复制代码 代码如下: i=0 set wshshell=createobject("wscript.shell") Set objWo
参考代码一: 复制代码 代码如下: Function DeleteLog( ) Dim objFSO, objFolder, strPath,
挺实用的一段代码,用来深入学习vbs,确实不错咯。 复制代码 代码如下: On Error Resume Next '忽略所有错误 Dim filename '声明变量 Di
话说还是闲来练手,初步实现了自己认为的“多线程”下载。(至于是不是多线程,可以参考12楼链接) 为避免冗余,省了一些错误检查。我觉得没多大实际用途,有兴趣的兄弟一起学习讨论呗。欢迎大家指正: 复制
复制代码 代码如下: set oDOM = WScript.GetObject("http://ipseeker.cn//") flag=0 for i=1 to 10 &n
复制代码 代码如下: on error resume next url = " http://www.bathome.net/logging.php?action=login"
效果图: 代码都封装成函数了,方便调用: 复制代码 代码如下: Key = "www-enun-net" '不要用数字
打开狗狗影视,搜索自己需要的资源,资源类型选:电驴,如下图: 我找到一个 19.75gb 的: 点开它,出现如下图的界面,可以看到正常下载地址已被屏蔽。我们复制地址栏中的网址,备用。
最近相关的备份比较频繁,为了校验文件的完整性,老是要打开某文件HASH校验工具,比较麻烦,于是乎写了这个东东,文件较大时计算有点慢,文件的MD5值保存在剪贴板!效果如图: 使用方法: 1.先
CMD当前路径 复制代码 代码如下: test = createobject("Scripting.FileSystemObject").GetF
For Next 语句的基本结构为: 复制代码 代码如下: For counter = start To end [Step step] [statements] [Exit For] [st
我是一名优秀的程序员,十分优秀!