第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Javascript 中的數(shù)據(jù) URI 到 JSON?

Javascript 中的數(shù)據(jù) URI 到 JSON?

臨摹微笑 2023-09-21 16:47:58
我遇到一個(gè)問題,我的服務(wù)器應(yīng)用程序獲取 JSON 的 DataURI,我想再次將其解析為 JSON。我怎么能這樣做呢?我嘗試了不同的方法,但似乎沒有任何效果。我嘗試簡(jiǎn)單地解析它,encodeURI(data);但仍然無法獲得原始的 JSON。這是數(shù)據(jù) URI: data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=我也嘗試過對(duì)其進(jìn)行編碼:var data = 'data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=';Buffer.from(data.toString('utf8'), 'base64').toString('ascii')但如果我在控制臺(tái)上登錄,我會(huì)得到這個(gè):u+Zje   F- J'm+k0P"&VGEwGR#"&Fvr"@P"&VGEvFF#"%vwrBR"FVw7BFW&R$r P'
查看完整描述

1 回答

?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

數(shù)據(jù) URI 采用 Base64 編碼的 JSON。有兩個(gè)步驟:

  1. 解碼 Base64(例如,使用函數(shù)atob),并且

  2. 解析生成的 JSON

例如(在瀏覽器上):

const dataURI = "data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=";


// 29 = length of "data:application/json;base64,"

const json = atob(dataURI.substring(29));

const result = JSON.parse(json);

console.log(result);


Buffer您在問題中使用的向我表明您可能正在使用 Node.js。如果是這樣,您可以將調(diào)用替換atob為Buffer.from(data, 'base64').toString():


const dataURI = "data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=";


// 29 = length of "data:application/json;base64,"

const json = Buffer.from(dataURI.substring(29), "base64").toString();

const result = JSON.parse(json);

console.log(result);


查看完整回答
反對(duì) 回復(fù) 2023-09-21
?
江戶川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果您不介意將上下文更改為異步上下文,則可以使用它fetch()來解析資源。fetch()通常與 URL 一起使用,但也可以與數(shù)據(jù) URI 一起使用(在大多數(shù)瀏覽器中)。

const dataURI = "data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=";


(async function () {

? const response = await fetch(dataURI);

? const data = await response.json();

? console.log(data);

})();


如果您已經(jīng)在使用庫(kù)來簡(jiǎn)化網(wǎng)絡(luò)請(qǐng)求,那么您也可以使用它們。

例子:

jQuery:

const dataURI = "data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=";


(async function() {

? const data = await $.getJSON(dataURI);

? console.log(data);

})();

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

軸:

const dataURI = "data:application/json;base64,ew0KICAgICJtYWx0X3R5cGUiOiAibG9nIiwNCiAgICAibWFsdF9kYXRhIjogIldvdywgdSByIGFsbW9zdCB0aGVyZSA6TyINCn0=";


(async function() {

? const response = await axios.get(dataURI);

? console.log(response.data);

})();

<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.21.0/axios.min.js"></script>


查看完整回答
反對(duì) 回復(fù) 2023-09-21
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)