时间:2021-05-22
我收集了三种常见 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 格式的吧。
Set html = CreateObject("htmlfile")Set http = CreateObject("Msxml2.ServerXMLHTTP")http.open "GET", "http://kzone.kuwo.cn/mlog/UserVal?uid=1237357&from=profile", Falsehttp.sendstrHtml = http.responseText ' 得到数据Set window = html.parentWindowwindow.execScript "var json = " & strHtml, "JScript" ' 解析 jsonSet 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?mobile=13012345678&amount=10000&callname=" & callbackhttp.open "GET", url, Falsehttp.sendstrHtml = 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.parentWindowwindow.execScript "function " & callback & "(o){json=o}", "JScript" ' jsonp 回调函数、window.execScript strHtml, "JScript" ' 解析 jsonSet 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", Falsehttp.sendstrHtml = http.responseText ' 得到数据' 得到 var returnCitySN = {"cip": "218.72.14.14", "cid": "330100", "cname": "浙江省杭州市"};Set window = html.parentWindowwindow.execScript strHtml, "JScript" ' 解析 jsSet js = window.returnCitySN ' 获取解析后的对象WScript.Echo js.cname, js.cip, js.cid可以得到如下信息
js 格式的是最简单的,但要注意,变量名是他定的,所以你在 获取解析后的对象 那一步,要写上他的变量名。
json 格式,我们只要给他加上变量名然后解析即可。
jsonp 相对麻烦点,因为要写一个自定义回调函数。
总的来说,方法差不多,只是解析部分稍微有点不同而已。
用 htmlfile 解析,是不是比 正则 方便?
以后玩 POST 别再用落伍的 instr+mid 或者 正则 去解析 html json了, htmlfile 才是王道。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用Script元素发送JSONP请求的方法//根据指定URL发送一个JSONP请求//然后把解析得到的相应数据传递给回调函数//在URL中添加一个名为json
什么是jsonp?说到jsonp,你可能最先想到JSON;它还真和JSON有关系;JSONP(JSONwithPadding)是JSON的一种“使用模式”,可用
1.json与jsonp的引入在ajax中JSON用来解决数据交换问题,而JSONP来实现跨域。备注:跨域也可以通过服务器端代理来解决;理解:JSON是一种数据
我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法。JSON数据如下,是一个嵌套JSON:复制代码代码如
本文实例讲述了Jquery解析json字符串及json数组的方法。分享给大家供大家参考。具体如下:解析json字符串、json数组{"ret":0,"msg":