json解析接口源碼(json鏈接在線解析)
本篇文章給大家談?wù)刯son解析接口源碼,以及json鏈接在線解析對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、求個(gè)藍(lán)奏云直連解析接口,或者是源碼。
- 2、android 用JSON 解析數(shù)據(jù)接口方法
- 3、如何二次視頻解析json接口
- 4、如何編寫一個(gè)JSON解析器
- 5、html中從接口中獲得的json數(shù)據(jù)里含有html代碼標(biāo)簽,導(dǎo)致解析到頁面上的時(shí)候顯示的是源代碼而不是代碼效果
- 6、js 解析json數(shù)據(jù)填充到html里,求源碼~~
求個(gè)藍(lán)奏云直連解析接口,或者是源碼。
接口和源碼我都有。
源碼我不知道有沒有用,因?yàn)闆]php環(huán)境,不過以前測(cè)試過是可以用的!
1,接口地址:放個(gè)圖片你們自己看。
2,源碼地址? :就是上面這個(gè)接口的源碼
?php
function?MloocCurl($url,$method,$ifurl,$post_data){
$UserAgent?=?'Mozilla/5.0?(Windows?NT?6.1;?WOW64)?AppleWebKit/537.36?(KHTML,?like?Gecko)?Chrome/63.0.3239.132?Safari/537.36';#設(shè)置ua
$curl?=?curl_init();
curl_setopt($curl,?CURLOPT_URL,?$url);
curl_setopt($curl,?CURLOPT_USERAGENT,?$UserAgent);
curl_setopt($curl,?CURLOPT_SSL_VERIFYPEER,?false);
curl_setopt($curl,?CURLOPT_SSL_VERIFYHOST,?false);
curl_setopt($curl,?CURLOPT_RETURNTRANSFER,?1);
if?($method?==?"post")?{
curl_setopt($curl,?CURLOPT_REFERER,?$ifurl);
curl_setopt($curl,?CURLOPT_POST,?1);
curl_setopt($curl,?CURLOPT_POSTFIELDS,?$post_data);
}
$response?=?curl_exec($curl);
curl_close($curl);
return?$response;
}
if?(!empty($_GET['url']))?{
$url?=?$_GET['url'];
#第一步
$ruleMatchDetailInList?=?"~ifr2\"\sname=\"[\s\S]*?\"\ssrc=\"\/(.*?)\"~";
preg_match($ruleMatchDetailInList,?MloocCurl($url,null,null,null),$link);
$ifurl?=?"".$link[1];
#第二步
$ruleMatchDetailInList?=?"~=\s'(.*?)';[\S\s]*?=\s'(.*?)'[\S\s]*?=\s'(.*?)'[\S\s]*?=\s'(.*?)'~";
preg_match($ruleMatchDetailInList,?MloocCurl($ifurl,null,null,null),$segment);
#第三步
#post提交的數(shù)據(jù)
$post_data?=?array(
"action"?=?$segment[1],
"file_id"?=?$segment[2],
"t"?=?$segment[3],
"k"?=?$segment[4]
);
$obj?=?json_decode(MloocCurl("","post",$ifurl,$post_data));#json解析
if?($obj-dom?==?"")?{#判斷鏈接是否正確
echo?"鏈接有誤!";
}else{
$downUrl?=?$obj-dom."/file/".$obj-url."/type=down/";
if?(!empty($_GET['type']))?{
$type?=?$_GET['type'];
if?($type?==?"down")?{
header('Location:'.$downUrl);#直接下載
}else{
header('Location:'.$downUrl);#直接下載
}
}else{
header('Location:'.$downUrl);#直接下載
}
}
}else{
$result_url?=?str_replace("index.php","","http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']."");
echo?"藍(lán)奏云直連下載";
echo?"br/";
/*echo?"直接下載:"."a?href='".$result_url."type=down'?target='_blank'".$result_url."type=down/a";
echo?"br/";
echo?"輸出直鏈:"."a?href='".$result_url."'?target='_blank'".$result_url."/a";*/
}
?
android 用JSON 解析數(shù)據(jù)接口方法
接口獲取下來的數(shù)據(jù)為
{"status":200,"message":"查詢成功","data":{"id":32,"user_id":null,"user_code":null,"user_pass":null,"meeting_id":"1","meeting_pass":null,"config_param_ip":"11.1.1.70","port":"6501","web_config_param_ip":"11.1.1.70","web_port":"6501","unit_code":null,"create_time":null,"update_time":null,"status":0,"userCode":"video1","userPass":"video1","meetingId":"1","meetingPass":"","apiPort":"13000","username":"admin","password":"123456","updateTime":"2021-11-08 17:45:29"}}
使用方法
try {
? ? JSONObject jsonObject = new JSONObject(outstring);
? ? int resultCode = jsonObject.getInt("status");
? ? if (resultCode == 200) {
? ? ? ? JSONObject obj = jsonObject.getJSONObject("data");
? ? ? ? IP = obj.getString("config_param_ip");
? ? ? ? port = obj.getString("web_port");
? ? ? ? username = obj.getString("userCode");
? ? ? ? password = obj.getString("userPass");
? ? ? ? roomID = Integer.parseInt(obj.getString("meetingId"));
? ? ? ? roomPassword = obj.getString("password");
? ? } else {
? ? ? ? ToastUtils.showShort("查詢失敗");
? ? }
? ? goVideo();
} catch (Exception e) {
? ? e.printStackTrace();
}
如何二次視頻解析json接口
二次視頻解析json接口步驟如下:
1、整合視頻接口。視頻地址、主要功能為整合站內(nèi)解析與其他第三方解析。
2、站內(nèi)解析接口。視頻地址、主要功能為站內(nèi)解析json使用DP或者CK播放器播放。
3、站外整合解析接口。視頻鏈接、視頻鏈接等(共有4個(gè))。
4、視頻解析JSON接口。視頻鏈接主要是對(duì)接APP或者軟件用的接口,可以把視頻鏈接解析為M3U8或者M(jìn)P4的鏈接。
如何編寫一個(gè)JSON解析器
編寫一個(gè)JSON解析器實(shí)際上就是一個(gè)函數(shù),它的輸入是一個(gè)表示JSON的字符串,輸出是結(jié)構(gòu)化的對(duì)應(yīng)到語言本身的數(shù)據(jù)結(jié)構(gòu)。
和XML相比,JSON本身結(jié)構(gòu)非常簡(jiǎn)單,并且僅有幾種數(shù)據(jù)類型,以Java為例,對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)是:
"string":Java的String;
number:Java的Long或Double;
true/false:Java的Boolean;
null:Java的null;
[array]:Java的ListObject或Object[];
{"key":"value"}:Java的MapString, Object。
解析JSON和解析XML類似,最終都是解析為內(nèi)存的一個(gè)對(duì)象。出于效率考慮,使用流的方式幾乎是唯一選擇,也就是解析器只從頭掃描一遍JSON字符串,就完整地解析出對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)。
本質(zhì)上解析器就是一個(gè)狀態(tài)機(jī),只要按照J(rèn)SON定義的格式(參考,正確實(shí)現(xiàn)狀態(tài)轉(zhuǎn)移即可。但是為了簡(jiǎn)化代碼,我們也沒必要完整地實(shí)現(xiàn)一個(gè)字符一個(gè)字符的狀態(tài)轉(zhuǎn)移。
解析器的輸入應(yīng)該是一個(gè)字符流,所以,第一步是獲得Reader,以便能不斷地讀入下一個(gè)字符。
在解析的過程中,我們經(jīng)常要根據(jù)下一個(gè)字符來決定狀態(tài)跳轉(zhuǎn),此時(shí)又涉及到回退的問題,就是某些時(shí)候不能用next()取下一個(gè)字符,而是用peek()取下一個(gè)字符,但字符流的指針不移動(dòng)。所以,Reader接口不能滿足這個(gè)需求,應(yīng)當(dāng)進(jìn)一步封裝一個(gè)CharReader,它可以實(shí)現(xiàn):
char next():讀取下一個(gè)字符,移動(dòng)Reader指針;
char peek():讀取下一個(gè)字符,不移動(dòng)Reader指針;
String next(int size):讀取指定的N個(gè)字符并移動(dòng)指針;
boolean hasMore():判斷流是否結(jié)束。
JSON解析比其他文本解析要簡(jiǎn)單的地方在于,任何JSON數(shù)據(jù)類型,只需要根據(jù)下一個(gè)字符即可確定,仔細(xì)總結(jié)可以發(fā)現(xiàn),如果peek()返回的字符是某個(gè)字符,就可以期望讀取的數(shù)據(jù)類型:
{:期待一個(gè)JSON object;
::期待一個(gè)JSON object的value;
,:期待一個(gè)JSON object的下一組key-value,或者一個(gè)JSON array的下一個(gè)元素;
[:期待一個(gè)JSON array;
t:期待一個(gè)true;
f:期待一個(gè)false;
n:期待一個(gè)null;
":期待一個(gè)string;
0~9:期待一個(gè)number。
但是單個(gè)字符要匹配的狀態(tài)太多了,需要進(jìn)一步把字符流變?yōu)門oken,可以總結(jié)出如下幾種Token:
END_DOCUMENT:JSON文檔結(jié)束;
BEGIN_OBJECT:開始一個(gè)JSON object;
END_OBJECT:結(jié)束一個(gè)JSON object;
BEGIN_ARRAY:開始一個(gè)JSON array;
END_ARRAY:結(jié)束一個(gè)JSON array;
SEP_COLON:讀取一個(gè)冒號(hào);
SEP_COMMA:讀取一個(gè)逗號(hào);
STRING:一個(gè)String;
BOOLEAN:一個(gè)true或false;
NUMBER:一個(gè)number;
NULL:一個(gè)null。
然后,將CharReader進(jìn)一步封裝為TokenReader,提供以下接口:
Token readNextToken():讀取下一個(gè)Token;
boolean readBoolean():讀取一個(gè)boolean;
Number readNumber():讀取一個(gè)number;
String readString():讀取一個(gè)string;
void readNull():讀取一個(gè)null。
由于JSON的Object和Array可以嵌套,在讀取過程中,使用一個(gè)棧來存儲(chǔ)Object和Array是必須的。每當(dāng)我們讀到一個(gè)BEGIN_OBJECT時(shí),就創(chuàng)建一個(gè)Map并壓棧;每當(dāng)讀到一個(gè)BEGIN_ARRAY時(shí),就創(chuàng)建一個(gè)List并壓棧;每當(dāng)讀到一個(gè)END_OBJECT和END_ARRAY時(shí),就彈出棧頂元素,并根據(jù)新的棧頂元素判斷是否壓棧。此外,讀到Object的Key也必須壓棧,讀到后面的Value后將Key-Value壓入棧頂?shù)腗ap。
如果讀到END_DOCUMENT時(shí),棧恰好只剩下一個(gè)元素,則讀取正確,將該元素返回,讀取結(jié)束。如果棧剩下不止一個(gè)元素,則JSON文檔格式不正確。
最后,JsonReader的核心解析代碼parse()就是負(fù)責(zé)從TokenReader中不斷讀取Token,根據(jù)當(dāng)前狀態(tài)操作,然后設(shè)定下一個(gè)Token期望的狀態(tài),如果與期望狀態(tài)不符,則JSON的格式無效。起始狀態(tài)被設(shè)定為STATUS_EXPECT_SINGLE_VALUE | STATUS_EXPECT_BEGIN_OBJECT | STATUS_EXPECT_BEGIN_ARRAY,即期望讀取到單個(gè)value、{或[。循環(huán)的退出點(diǎn)是讀取到END_DOCUMENT時(shí)。
html中從接口中獲得的json數(shù)據(jù)里含有html代碼標(biāo)簽,導(dǎo)致解析到頁面上的時(shí)候顯示的是源代碼而不是代碼效果
function?decode(text){
var?div?=?document.createElement("div");
div.innerHTML?=?text;
text?=?div.innerText?||?div.textContent;
div?=?null;
return?text;
}
調(diào)用一下decode
js 解析json數(shù)據(jù)填充到html里,求源碼~~
ul
li?id="li"數(shù)據(jù)填充到這里就行了/li
/ul
var?nearInfo=[{"retmsg":?"success",”id“:100,"name":?"中山公園"},
{"retmsg":?"success",”id“:100,"name":?"中山公園"}];
//?json轉(zhuǎn)對(duì)象
var?result?=?$.parseJSON(nearInfo);
for(var?i=0;iresult.length;i++){
????$('#li').html(result[i].name);
}
這里只填了個(gè)name , 你看懂了,其他就好說了
關(guān)于json解析接口源碼和json鏈接在線解析的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。