我收集了三种常见 json jsonp 的格式,因为很多人找我说如何用正则提取某个字符串,我看了下,要么是json,要么是jsonp,
正则简直浪费,比如那种空间里说说的数据,上百条的信息,你正则个P,而且还有回复里的格式也差不多的,所以最好的方法还是解析。
先来看看常见的三种吧:
酷我音乐用户信息 json 格式
http://kzone.kuwo.cn/mlog/UserVal"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"cip": "218.72.14.14", "cid": "330100", "cname": "浙江省杭州市"};
这几种合适都可以通过 htmlfile 来解析,但是方法稍微有点差异。
先来解析第一种 json 格式的吧。
Set html = CreateObject("htmlfile") Set http = CreateObject("Msxml2.ServerXMLHTTP") http.open "GET", "http://kzone.kuwo.cn/mlog/UserVal", 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其实只是多了一个回调函数而已,所以我们自定义一个函数解析他就可以了。
Set html = CreateObject("htmlfile") Set http = CreateObject("Msxml2.ServerXMLHTTP") callback = "cb" url = "http://virtual.paipai.com/extinfo/GetMobileProductInfo" & 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 格式解析,这个是最简单的,什么都不用做,但是你要知道他的变量名。
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 才是王道。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】
- 陈思安.1990-国语钢琴酒吧5CD【欣代唱片】【WAV+CUE】
- 莫文蔚《莫后年代20周年世纪典藏》3CD[WAV+CUE][2G]
- 张惠妹《我要快乐》华纳[WAV+CUE][1G]
- 罗大佑1982《之乎者也》无法盗版的青春套装版 [WAV+CUE][1G]
- 曾庆瑜1989-款款柔情[日本东芝版][WAV+CUE]
- Scelsi-IntegraledesquatuorsacordesetTrioacordes-QuatuorMolinari(2024)[24bit-WAV]
- 房东的猫2017-房东的猫[科文音像][WAV+CUE]
- 杨乃文.2016-离心力(引进版)【亚神音乐】【WAV+CUE】
- 群星.2024-珠帘玉幕影视原声带【TME】【FLAC分轨】
- 芝麻龙眼.2008-光阴隧道民歌记录3CD【乡城】【WAV+CUE】
- 谭艳《再度重相逢HQII》头版限量[低速原抓WAV+CUE][549M]
- ABC唱片《蔡琴三十周年纪念版》6N纯银镀膜 [WAV+CUE][1.1G]