當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JSON学习笔记(四)- JSON.parse()
生活随笔
收集整理的這篇文章主要介紹了
JSON学习笔记(四)- JSON.parse()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
JSON.parse()
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 格式,否則會解析出錯。
你可以使用我們的在線工具檢測:https://c.runoob.com/front-end/53。
解析完成后,我們就可以在網頁上使用 JSON 數據了:
實例
<pid="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 = newXMLHttpRequest();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 數據,則 JSON.parse 會將其轉換為 JavaScript 數組:
實例
var xmlhttp = newXMLHttpRequest();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();查看服務端數據: json_demo_array.txt
異常
解析數據
JSON 不能存儲 Date 對象。
如果你需要存儲 Date 對象,需要將其轉換為字符串。
之后再將字符串轉換為 Date 對象。
實例
var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';varobj = 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"}';varobj = JSON.parse(text,function (key,value){ if(key =="initDate"){ returnnew Date(value);} else{ returnvalue;}});document.getElementById("demo").innerHTML = obj.name +"創建日期:" +obj.initDate;解析函數
JSON 不允許包含函數,但你可以將函數作為字符串存儲,之后再將字符串轉換為函數。
實例
var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';varobj = JSON.parse(text);obj.alexa = eval("(" +obj.alexa +")");document.getElementById("demo").innerHTML = obj.name +" Alexa 排名:" +obj.alexa();總結
以上是生活随笔為你收集整理的JSON学习笔记(四)- JSON.parse()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSON学习笔记(三)- 数组
- 下一篇: JSON学习笔记(五)- JSON.st