【環球報資訊】一篇文章教會你JavaScript json 解析
回復“前端”即可獲贈前端相關學習資料
今
日
(資料圖)
雞
湯
疾風知勁草,板蕩識誠臣。JSON的一個常見用途是交換數據到從一個Web服務器,當從web服務器接收數據時,數據總是一個字符串。使用JSON.parse()方法解析這些數據,數據變成JavaScript對象。一、瀏覽器支持JSON.parse() 函數包括所有主要的瀏覽器和最新的ECMAScript(JavaScript)標準:
瀏覽器支持 |
---|
Firefox 3.5 ,Internet Explorer 8 ,Chrome, Opera 10 ,Safari 4 |
想象一下,我們從Web服務器收到這個文本:
"{ "name":"John", "age":30, "city":"New York"}"
使用JavaScript函數JSON.parse() 將文本轉換成JavaScript對象:
var obj = JSON.parse("{ "name":"John", "age":30, "city":"New York"}");
注:確保文字是用JSON格式,否則你會得到一個語法錯誤。
在你的頁面中使用JavaScript對象:
2. 從服務器獲得JSON項目 JSON解析文本
你可以使用AJAX請求從服務器獲得JSON。
只要來自服務器的響應是用JSON格式,您可以將字符串解析成JavaScript對象。
Ajax是什么?
Asynchronous JavaScript & XML。Ajax是web開發的一種技術。
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", "json_demo.txt", true);xmlhttp.send();
服務器端 訪問成功!將JSON解析的內容保存在json_demo.txt。
3. 數組作為JSON當使用JSON.parse()方法的使用, 該方法將返回一個JavaScript數組, 而不是一個JavaScript對象.
var xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function() {if (this.readyState == 4 && this.status == 200) {myArr = JSON.parse(this.responseText);document.getElementById("demo").innerHTML = myArr[0];}};xmlhttp.open("GET", "json_demo_array.txt", true);xmlhttp.send();
為了方便測速,自己創建了json_demo_array.txt文件。
json_demjo_array.txt
三、拓展解析日期(2種)在JSON中,日期對象是不允許的。
如果需要包含日期,請將其寫成字符串.
1. 將其轉換為日期對象:var text = "{ "name":"John", "birth":"1986-12-14", "city":"New York"}";var obj = JSON.parse(text) {obj.birth = new Date(obj.birth);document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;2.使用JSON.parse()函數的第二個參數, 稱為接收器
該接收機參數,返回值之前,檢查每個屬性。
var text = "{ "name":"John", "birth":"1986-12-14", "city":"New York"}";var obj = JSON.parse(text, function (key, value) {if (key == "birth") {return new Date(value);} else {return value;}});document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;解析函數
在JSON中不允許函數.
如果你需要包含一個函數,寫成字符串。
以后您可以將其轉換為函數:
var text = "{ "name":"John", "age":"function () {return 30;}", "city":"New York"}";var obj = JSON.parse(text) {obj.age = eval("(" + obj.age + ")");document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();
避免在JSON使用函數,函數將失去他們的范圍,你將不得不使用eval()將它們轉換回函數。
四、總結本文基于JavaScript ,介紹了 json 解析在實際的應用。如何去解析一個JSON文件,從三個方面進行了講解。在實際過程中遇到的難點,提供了有效的解決方案。最后拓展,希望對JSON解析有了進一步的了解,使用JavaScript 語言,效果圖動展示,希望能夠讓讀者更好的理解。
代碼很簡單,希望能夠幫助你更好的學習。
-------------------?End?-------------------
往期精彩文章推薦:
盤點JavaScript中數組遍歷的全部方式(上篇)盤點JavaScript中數組遍歷的全部方式(下篇)一篇文章帶你了解JavaScript日期歡迎大家點贊,留言,轉發,轉載,感謝大家的相伴與支持
想加入前端學習群請在后臺回復【入群】
萬水千山總是情,點個【在看】行不行
關鍵詞:
您可能也感興趣:
為您推薦
拆解報告:安克20000mAh 20W快充移動電源
天天時訊:2023年T恤十大品牌排行榜
肖像畫素描步驟(肖像畫素描)
排行
最近更新
- 【環球報資訊】一篇文章教會你JavaScript json 解析
- 全球觀速訊丨地信企業董高監薪酬 一個產業的自畫像
- 世界微資訊!車前草治療痛風偏方_中藥治療痛風偏方十個
- 房地產開發企業土地增值稅清算條件稅屋_房地產開發企業土地增...
- 當前看點!龍樹菩薩簡介_龍樹菩薩簡單介紹
- 安全生產重在預防 中牟縣濱河社區強化安全生產宣傳-當前熱聞
- 世界關注:海底撈火鍋有哪些菜品
- 全球資訊:微軟承認輸掉主機大戰
- 小學必背端午節古詩三年級(小學必背端午節古詩)
- 許昌東城區:環保政策入校園 綠色理念入人心|微速訊
- 焦點快報!禹州市財政局在許昌市2022年度縣級財政管理工作考核...
- 國網西峽縣供電公司:站好中考“保電崗” “電”亮莘莘學子夢
- 環球熱點評!淅川縣成功舉辦第二屆中醫藥文化傳承活動開幕式
- 首批開發生產POE膠膜企業祥邦科技 憑借技術積累廣獲好評|世界訊息
- 商城縣:增設短信提醒功能 提升投訴處理效能
- 港股航運股多數上漲,東方海外國際漲超4%|今日熱議
- 微動態丨工商銀行龍鳳呈祥金條100克價格今天多少一克(2023年...
- 5月份債券市場共發行各類債券54561.6億元|天天報資訊
- 送朋友自制無縫羊毛帽子,手工制作溫暖獨特,好貼心!-天天觀...
- 第七史詩符文怎么獲取 第七史詩符文獲取方法介紹
- 河南杞縣:返鄉創業帶領鄉親致富 蜜瓜棚邊話增收
- 環球快訊:青龍電視劇頒獎禮提名公布 宋慧喬秀智等爭奪視后
- 小米旗艦機官方店(小米旗艦機) 世界視點
- 阿爾特塔:阿森納未能贏得英超冠軍“仍然深深傷害了我”
- 好運不斷,財運旺盛,橫財千萬,鈔票進賬如流水3生肖
- 天平街道馬家園村舉辦消防安全知識講座和演練活動
- 四川電費返還暫停了嗎2023?|熱點
- 每日快報!“321”辦學模式提質又增效
- 2023天津瑪雅水公園夜場門票購買入口+流程
- 股東惡斗、現金流不足,三年虧損7.77億元的方舟云康難上市