vbs 解析json jsonp的方法
我收集了三種常見(jiàn) json jsonp 的格式,因?yàn)楹芏嗳苏椅艺f(shuō)如何用正則提取某個(gè)字符串,我看了下,要么是json,要么是jsonp,
正則簡(jiǎn)直浪費(fèi),比如那種空間里說(shuō)說(shuō)的數(shù)據(jù),上百條的信息,你正則個(gè)P,而且還有回復(fù)里的格式也差不多的,所以最好的方法還是解析。
先來(lái)看看常見(jiàn)的三種吧:
酷我音樂(lè)用戶信息 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}
拍拍手機(jī)查詢接口 jsonp 格式
http://virtual.paipai.com/extinfo/GetMobileProductInfo?mobile=13012345678&amount=10000&callname=cb
cb({mobile:'13012345678',province:'重慶',isp:'中國(guó)聯(lián)通',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": "浙江省杭州市"};
這幾種合適都可以通過(guò) htmlfile 來(lái)解析,但是方法稍微有點(diǎn)差異。
先來(lái)解析第一種 json 格式的吧。
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 ' 得到數(shù)據(jù) Set window = html.parentWindow window.execScript "var json = " & strHtml, "JScript" ' 解析 json Set kuwo = window.json ' 獲取解析后的對(duì)象 WScript.Echo "訪問(wèn)量:", kuwo.view, " 財(cái)富:", kuwo.fortune
可以得到如下信息。
再來(lái)看看 jsonp 的解析,jsonp其實(shí)只是多了一個(gè)回調(diào)函數(shù)而已,所以我們自定義一個(gè)函數(shù)解析他就可以了。
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 ' 得到數(shù)據(jù) ' cb({mobile:'13012345678',province:'重慶',isp:'中國(guó)聯(lián)通',stock:'1',amount:'10000',maxprice:'0',minprice:'0'}); ' <!--[if !IE]>|xGv00|8030d7c308afc4a32846a715ff79e9a3<![endif]--> ' 得到的是這樣的數(shù)據(jù),所以要處理下 strHtml = Split(strHtml, vbLf)(0) ' 取第一行 Set window = html.parentWindow window.execScript "function " & callback & "(o){json=o}", "JScript" ' jsonp 回調(diào)函數(shù)、 window.execScript strHtml, "JScript" ' 解析 json Set json = window.json ' 獲取解析后的對(duì)象 WScript.Echo json.mobile, json.isp, json.province
可以得到如下信息。
最后看下 js 格式解析,這個(gè)是最簡(jiǎn)單的,什么都不用做,但是你要知道他的變量名。
Set html = CreateObject("htmlfile") Set http = CreateObject("Msxml2.ServerXMLHTTP") http.open "GET", "http://pv.sohu.com/cityjson", False http.send strHtml = http.responseText ' 得到數(shù)據(jù) ' 得到 var returnCitySN = {"cip": "218.72.14.14", "cid": "330100", "cname": "浙江省杭州市"}; Set window = html.parentWindow window.execScript strHtml, "JScript" ' 解析 js Set js = window.returnCitySN ' 獲取解析后的對(duì)象 WScript.Echo js.cname, js.cip, js.cid
可以得到如下信息
js 格式的是最簡(jiǎn)單的,但要注意,變量名是他定的,所以你在 獲取解析后的對(duì)象 那一步,要寫(xiě)上他的變量名。
json 格式,我們只要給他加上變量名然后解析即可。
jsonp 相對(duì)麻煩點(diǎn),因?yàn)橐獙?xiě)一個(gè)自定義回調(diào)函數(shù)。
總的來(lái)說(shuō),方法差不多,只是解析部分稍微有點(diǎn)不同而已。
用 htmlfile 解析,是不是比 正則 方便?
以后玩 POST 別再用落伍的 instr+mid 或者 正則 去解析 html json了, htmlfile 才是王道。
上一篇:vbs qq自動(dòng)發(fā)信息增強(qiáng)版
欄 目:vb
下一篇:使用 iisweb.vbs start 啟動(dòng)網(wǎng)站的方法
本文標(biāo)題:vbs 解析json jsonp的方法
本文地址:http://mengdiqiu.com.cn/a1/vb/7270.html
您可能感興趣的文章
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10VBS中的正則表達(dá)式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語(yǔ)句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁(yè)面中添加VBscript代碼


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹(shù)的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語(yǔ)法速查及實(shí)例說(shuō)明
隨機(jī)閱讀
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開(kāi)原生自帶讀寫(xiě)NTFS功能(圖文
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子