JSON.parse()——json轉JS

來源:互聯網
上載者:User

標籤:lwip   mob   back   json   uav   mba   rpo   upn   lbp   

JSON 通常用於與服務端交換資料。

在接收伺服器資料時一般是字串。

我們可以使用 JSON.parse() 方法將資料轉換為 JavaScript 對象。

文法
JSON.parse(text[, reviver])

參數說明:

  • text:必需, 一個有效 JSON 字串。
  • reviver: 可選,一個轉換結果的函數, 將為對象的每個成員調用此函數。
JSON 解析執行個體

例如我們從伺服器接收了以下資料:

{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }

 我們使用 JSON.parse() 方法處理以上資料,將其轉換為 JavaScript 對象:

var obj = JSON.parse(‘{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }‘);

解析完成後,我們就可以在網頁上使用 JSON 資料了:

例如:

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

 

 從服務端接收 JSON 資料

我們可以使用 AJAX 從伺服器請求 JSON 資料,並解析為 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();
從服務端接收數組的 JSON 資料

如果從服務端接收的是數組的 JSON 資料,則 JSON.parse 會將其轉換為 JavaScript 數組:

異常解析資料

JSON 不能儲存 Date 對象。

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

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

l例如:

var text = ‘{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}‘;var obj = JSON.parse(text);obj.initDate = new Date(obj.initDate); document.getElementById("demo").innerHTML = obj.name + "建立日期: " + obj.initDate;

 

 

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

var text = ‘{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}‘;var obj = JSON.parse(text, function (key, value) {    if (key == "initDate") {        return new Date(value);    } else {        return value;}}); document.getElementById("demo").innerHTML = obj.name + "建立日期:" + obj.initDate;

 

 解析函數

JSON 不允許包含函數,但你可以將函數作為字串儲存,之後再將字串轉換為函數。

var text = ‘{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}‘;var obj = JSON.parse(text);obj.alexa = eval("(" + obj.alexa + ")"); document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();
瀏覽器支援

主流瀏覽器都支援 JSON.parse() 函數:

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

 

JSON.parse()——json轉JS

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.