1. 程式人生 > >JSON的parse()方法

JSON的parse()方法

parse()方法的介紹:

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

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

語法

JSON.parse(text[, reviver])

引數說明:

  • text:必需, 一個有效的 JSON 字串。
  • reviver: 可選,一個轉換結果的函式, 將為物件的每個成員呼叫此函式。

下面我們來看一個例項:

<p id="demo"></p>

<script>

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

document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;

</script>

首先通過parse()方法將JSON資料轉換為JavaScript物件,

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

從服務端接收 JSON 資料(陣列JSON資料)

我們可以使用 AJAX 從伺服器請求 JSON 資料,並解析為 JavaScript 物件。

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服務端資料需要自個編寫。

JSON中有個異常解析資料

JSON 不能儲存 Date 物件。如果你需要儲存 Date 物件,需要將其轉換為字串。之後再將字串轉換為 Date 物件。

<p id="demo"></p>

<script>           //將字串轉換為data物件

var text = '{ "name":"csdn", "initDate":"2013-12-14", "site":"www.csdn.com"}'; var obj = JSON.parse(text); obj.initDate = new Date(obj.initDate);

document.getElementById("demo").innerHTML = obj.name + "建立日期: " + obj.initDate;

</script>

這時我們可以啟用JSON的第二個引數:

<p id="demo"></p>

<script>

var text = '{ "name":"csdn", "initDate":"2013-12-14", "site":"www.csdn.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 + ")");            注意:最好不要在json中使用函式

document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();