您好,登錄后才能下訂單哦!
parse()方法的介紹:
在接收服務(wù)器數(shù)據(jù)時(shí)一般是字符串。
我們可以使用 JSON.parse() 方法將數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對(duì)象。
語(yǔ)法
JSON.parse(text[, reviver])
參數(shù)說(shuō)明:
下面我們來(lái)看一個(gè)實(shí)例:
<p id="demo"></p> <script> var obj = JSON.parse('{ "name":jb51", "alexa":10000, "site":www.jb51.net }'); document.getElementById("demo").innerHTML = obj.name + ":" + obj.site; </script>
首先通過(guò)parse()方法將JSON數(shù)據(jù)轉(zhuǎn)換為JavaScript對(duì)象,
解析完成后,我們就可以在網(wǎng)頁(yè)上使用JSON數(shù)據(jù)了
從服務(wù)端接收 JSON 數(shù)據(jù)(數(shù)組JSON數(shù)據(jù))
我們可以使用 AJAX 從服務(wù)器請(qǐng)求 JSON 數(shù)據(jù),并解析為 JavaScript 對(duì)象。
eg: var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; } }; xmlhttp.open("GET", "/try/ajax/json_demo.txt", true); xmlhttp.send();
json_demo.txt服務(wù)端數(shù)據(jù)需要自個(gè)編寫(xiě)。
JSON中有個(gè)異常解析數(shù)據(jù)
JSON 不能存儲(chǔ) Date 對(duì)象。如果你需要存儲(chǔ) Date 對(duì)象,需要將其轉(zhuǎn)換為字符串。之后再將字符串轉(zhuǎn)換為 Date 對(duì)象。
<p id="demo"></p> <script> //將字符串轉(zhuǎn)換為data對(duì)象 var text = '{ "name":"csdn", "initDate":"2018-12-14", "site":www.jb51.net}'; var obj = JSON.parse(text); obj.initDate = new Date(obj.initDate); document.getElementById("demo").innerHTML = obj.name + "創(chuàng)建日期: " + obj.initDate; </script>
這時(shí)我們可以啟用JSON的第二個(gè)參數(shù):
<p id="demo"></p> <script> var text = '{ "name":"csdn", "initDate":"2018-12-14", "site":"www.jb51.net"}'; var obj = JSON.parse(text, function (key, value) { if (key == "initDate") { return new Date(value); } else { return value; }}); document.getElementById("demo").innerHTML = obj.name + "創(chuàng)建日期:" + obj.initDate;
解析函數(shù):
JSON 不允許包含函數(shù),但你可以將函數(shù)作為字符串存儲(chǔ),之后再將字符串轉(zhuǎn)換為函數(shù)。
var text = '{ "name":"jb51", "alexa":"function () { return 10000;}", "site":"www.jb51.net"}'; var obj = JSON.parse(text); obj.alexa = eval("(" + obj.alexa + ")"); 注意:最好不要在json中使用函數(shù) document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)億速云的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。