json jsonp 분석 방법

4645 단어 vbsjsonjsonp
나 는 세 가지 흔히 볼 수 있 는 제 이 슨 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":"절강성 항주 시"};
이 몇 가 지 는 html file 을 통 해 해석 할 수 있 지만 방법 은 약간 차이 가 있 습 니 다.
첫 번 째 제 이 슨 형식 부터 해석 해 보 세 요.

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 는 사실 리 셋 함수 가 하나 더 생 겼 을 뿐 입 니 다.그래서 우 리 는 하나의 함수 로 그 를 해석 하면 됩 니 다.

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 형식 해석 을 보 세 요.이것 은 가장 간단 합 니 다.아무것도 할 필요 가 없 지만 그의 변수 이름 을 알 아야 합 니 다.

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 는 사용자 정의 반전 함 수 를 써 야 하기 때문에 상대 적 으로 번 거 로 운 점 입 니 다.
전반적 으로 방법 은 많 지 않 지만 해석 부분 이 조금 다 를 뿐이다.
html file 로 해석 하면 정규 보다 편리 하지 않 습 니까?
앞으로 POST 를 하면 서 낙오 된 instr+mid 나 정규 html json 을 해석 하지 마 세 요.html file 이 왕도 입 니 다.

좋은 웹페이지 즐겨찾기