標籤: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