中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

JSON.parse()

JSON 通常用于與服務端交換數(shù)據(jù)。

在接收服務器數(shù)據(jù)時一般是字符串。

我們可以使用 JSON.parse() 方法將數(shù)據(jù)轉換為 JavaScript 對象。

語法

JSON.parse(text[, reviver])

參數(shù)說明:

  • text:必需, 一個有效的 JSON 字符串。
  • reviver: 可選,一個轉換結果的函數(shù), 將為對象的每個成員調用此函數(shù)。

JSON 解析實例

例如我們從服務器接收了以下數(shù)據(jù):

{ "name":"json", "alexa":10000, "site":"" }

我們使用 JSON.parse() 方法處理以上數(shù)據(jù),將其轉換為 JavaScript 對象:

var obj = JSON.parse('{ "name":"json", "alexa":10000, "site":"" }');

解析前要確保你的數(shù)據(jù)是標準的 JSON 格式,否則會解析出錯。

你可以使用我們的在線工具檢測:#/front-end/53。

解析完成后,我們就可以在網(wǎng)頁上使用 JSON 數(shù)據(jù)了:

實例

<p id="demo"></p> <script> var obj = JSON.parse('{ "name":"json", "alexa":10000, "site":"" }'); document.getElementById("demo").innerHTML = obj.name + ":" + obj.site; </script>

運行代碼 ?

從服務端接收 JSON 數(shù)據(jù)

我們可以使用 AJAX 從服務器請求 JSON 數(shù)據(jù),并解析為 JavaScript 對象。

實例

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();

運行代碼 ?

查看服務端數(shù)據(jù): json_demo.txt


從服務端接收數(shù)組的 JSON 數(shù)據(jù)

如果從服務端接收的是數(shù)組的 JSON 數(shù)據(jù),則 JSON.parse 會將其轉換為 JavaScript 數(shù)組:

實例

var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { myArr = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myArr[1]; } }; xmlhttp.open("GET", "/try/ajax/json_demo_array.txt", true); xmlhttp.send();

運行代碼 ?

查看服務端數(shù)據(jù): json_demo_array.txt


異常

解析數(shù)據(jù)

JSON 不能存儲 Date 對象。

如果你需要存儲 Date 對象,需要將其轉換為字符串。

之后再將字符串轉換為 Date 對象。

實例

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":""}'; var obj = JSON.parse(text); obj.initDate = new Date(obj.initDate); document.getElementById("demo").innerHTML = obj.name + "創(chuàng)建日期: " + obj.initDate;

運行代碼 ?

我們可以啟用 JSON.parse 的第二個參數(shù) reviver,一個轉換結果的函數(shù),對象的每個成員調用此函數(shù)。

實例

var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":""}'; 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ù)作為字符串存儲,之后再將字符串轉換為函數(shù)。

實例

var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":""}'; var obj = JSON.parse(text); obj.alexa = eval("(" + obj.alexa + ")"); document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();

運行代碼 ?

不建議在 JSON 中使用函數(shù)。


瀏覽器支持

主流瀏覽器都支持 JSON.parse() 函數(shù):

  • Firefox 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4