【環(huán)球報資訊】一篇文章教會你JavaScript json 解析
回復(fù)“前端”即可獲贈前端相關(guān)學(xué)習(xí)資料
今
日
(資料圖)
雞
湯
疾風(fēng)知勁草,板蕩識誠臣。JSON的一個常見用途是交換數(shù)據(jù)到從一個Web服務(wù)器,當(dāng)從web服務(wù)器接收數(shù)據(jù)時,數(shù)據(jù)總是一個字符串。使用JSON.parse()方法解析這些數(shù)據(jù),數(shù)據(jù)變成JavaScript對象。一、瀏覽器支持JSON.parse() 函數(shù)包括所有主要的瀏覽器和最新的ECMAScript(JavaScript)標(biāo)準(zhǔn):
瀏覽器支持 |
---|
Firefox 3.5 ,Internet Explorer 8 ,Chrome, Opera 10 ,Safari 4 |
想象一下,我們從Web服務(wù)器收到這個文本:
"{ "name":"John", "age":30, "city":"New York"}"
使用JavaScript函數(shù)JSON.parse() 將文本轉(zhuǎn)換成JavaScript對象:
var obj = JSON.parse("{ "name":"John", "age":30, "city":"New York"}");
注:確保文字是用JSON格式,否則你會得到一個語法錯誤。
在你的頁面中使用JavaScript對象:
2. 從服務(wù)器獲得JSON項目 JSON解析文本
你可以使用AJAX請求從服務(wù)器獲得JSON。
只要來自服務(wù)器的響應(yīng)是用JSON格式,您可以將字符串解析成JavaScript對象。
Ajax是什么?
Asynchronous JavaScript & XML。Ajax是web開發(fā)的一種技術(shù)。
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();
服務(wù)器端 訪問成功!將JSON解析的內(nèi)容保存在json_demo.txt。
3. 數(shù)組作為JSON當(dāng)使用JSON.parse()方法的使用, 該方法將返回一個JavaScript數(shù)組, 而不是一個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();
為了方便測速,自己創(chuàng)建了json_demo_array.txt文件。
json_demjo_array.txt
三、拓展解析日期(2種)在JSON中,日期對象是不允許的。
如果需要包含日期,請將其寫成字符串.
1. 將其轉(zhuǎn)換為日期對象: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()函數(shù)的第二個參數(shù), 稱為接收器
該接收機參數(shù),返回值之前,檢查每個屬性。
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;解析函數(shù)
在JSON中不允許函數(shù).
如果你需要包含一個函數(shù),寫成字符串。
以后您可以將其轉(zhuǎn)換為函數(shù):
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使用函數(shù),函數(shù)將失去他們的范圍,你將不得不使用eval()將它們轉(zhuǎn)換回函數(shù)。
四、總結(jié)本文基于JavaScript ,介紹了 json 解析在實際的應(yīng)用。如何去解析一個JSON文件,從三個方面進行了講解。在實際過程中遇到的難點,提供了有效的解決方案。最后拓展,希望對JSON解析有了進一步的了解,使用JavaScript 語言,效果圖動展示,希望能夠讓讀者更好的理解。
代碼很簡單,希望能夠幫助你更好的學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:
盤點JavaScript中數(shù)組遍歷的全部方式(上篇)盤點JavaScript中數(shù)組遍歷的全部方式(下篇)一篇文章帶你了解JavaScript日期歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入前端學(xué)習(xí)群請在后臺回復(fù)【入群】
萬水千山總是情,點個【在看】行不行
關(guān)鍵詞:
您可能也感興趣:
今日熱點
為您推薦
拆解報告:安克20000mAh 20W快充移動電源
天天時訊:2023年T恤十大品牌排行榜
肖像畫素描步驟(肖像畫素描)
更多
- 天天熱點評!午評:恒指跌0.14% 恒生科指漲0.28%電力股大漲
- 港股航運股多數(shù)上漲,東方海外國際漲超4%|今日熱議
- 環(huán)球觀點:青龍電視劇頒獎禮提名公布 宋慧喬秀智等爭奪視后
- 環(huán)球快報:午間公告:華康醫(yī)療中標(biāo)9168.6萬元醫(yī)療專項施工項目
- 2023佛山陽光mini動漫展嘉賓有誰? 環(huán)球觀速訊
- 全球今日訊!市場對需求擔(dān)憂持續(xù) 國際油價23日下跌
- 今日要聞!500強礦業(yè)龍頭「紫金礦業(yè)」X企企通:打造全場景采購...
- 聯(lián)合國貿(mào)發(fā)會議:一季度全球貨物和服務(wù)貿(mào)易出現(xiàn)反彈
排行
- SHEIN推出“希有引力”百萬賣家計劃|全球熱點評
- 凱德華北區(qū)與菜百股份將在開店拓展等多方面達成合作
- 前三季度商業(yè)地產(chǎn)租賃需求創(chuàng)新高,存量地產(chǎn)價值提升空間廣闊
- 零氪科技暫停赴美IPO,上市計劃被延期
- 永定門電烤串完成近千萬元天使輪融資
- 廈門市黑色金屬產(chǎn)業(yè)招商又節(jié)碩果 金馬能源新項目落戶
- 東方雨虹上半年歸屬凈利潤約14.81億元-15.90億元
- 格林酒店一季度經(jīng)營利潤為6139萬元,同比增長64.9%
- 愛立信正進一步加大在中國本土研發(fā)的投入 推動5G技術(shù)創(chuàng)新
- 途虎養(yǎng)車與德國馬牌簽署戰(zhàn)略合作協(xié)議
最近更新
- 【環(huán)球報資訊】一篇文章教會你JavaScript json 解析
- 全球觀速訊丨地信企業(yè)董高監(jiān)薪酬 一個產(chǎn)業(yè)的自畫像
- 世界微資訊!車前草治療痛風(fēng)偏方_中藥治療痛風(fēng)偏方十個
- 房地產(chǎn)開發(fā)企業(yè)土地增值稅清算條件稅屋_房地產(chǎn)開發(fā)企業(yè)土地增...
- 當(dāng)前看點!龍樹菩薩簡介_龍樹菩薩簡單介紹
- 安全生產(chǎn)重在預(yù)防 中牟縣濱河社區(qū)強化安全生產(chǎn)宣傳-當(dāng)前熱聞
- 世界關(guān)注:海底撈火鍋有哪些菜品
- 全球資訊:微軟承認輸?shù)糁鳈C大戰(zhàn)
- 小學(xué)必背端午節(jié)古詩三年級(小學(xué)必背端午節(jié)古詩)
- 許昌東城區(qū):環(huán)保政策入校園 綠色理念入人心|微速訊
- 焦點快報!禹州市財政局在許昌市2022年度縣級財政管理工作考核...
- 國網(wǎng)西峽縣供電公司:站好中考“保電崗” “電”亮莘莘學(xué)子夢
- 環(huán)球熱點評!淅川縣成功舉辦第二屆中醫(yī)藥文化傳承活動開幕式
- 首批開發(fā)生產(chǎn)POE膠膜企業(yè)祥邦科技 憑借技術(shù)積累廣獲好評|世界訊息
- 商城縣:增設(shè)短信提醒功能 提升投訴處理效能
- 港股航運股多數(shù)上漲,東方海外國際漲超4%|今日熱議
- 微動態(tài)丨工商銀行龍鳳呈祥金條100克價格今天多少一克(2023年...
- 5月份債券市場共發(fā)行各類債券54561.6億元|天天報資訊
- 送朋友自制無縫羊毛帽子,手工制作溫暖獨特,好貼心!-天天觀...
- 第七史詩符文怎么獲取 第七史詩符文獲取方法介紹
- 河南杞縣:返鄉(xiāng)創(chuàng)業(yè)帶領(lǐng)鄉(xiāng)親致富 蜜瓜棚邊話增收
- 環(huán)球快訊:青龍電視劇頒獎禮提名公布 宋慧喬秀智等爭奪視后
- 小米旗艦機官方店(小米旗艦機) 世界視點
- 阿爾特塔:阿森納未能贏得英超冠軍“仍然深深傷害了我”
- 好運不斷,財運旺盛,橫財千萬,鈔票進賬如流水3生肖
- 天平街道馬家園村舉辦消防安全知識講座和演練活動
- 四川電費返還暫停了嗎2023?|熱點
- 每日快報!“321”辦學(xué)模式提質(zhì)又增效
- 2023天津瑪雅水公園夜場門票購買入口+流程
- 股東惡斗、現(xiàn)金流不足,三年虧損7.77億元的方舟云康難上市
今日要聞
- 大桶果茶系列全新升級回歸,冰雪時光助你清爽度夏
- 凈水機也內(nèi)卷?凈派森先內(nèi)測再上市人氣高
- 美國重大動作曝光,緊急成立工作組,什么信號?一夜暴跌37%,超級巨頭崩盤,影響多大?-世界微頭條
- 天天熱點評!午評:恒指跌0.14% 恒生科指漲0.28%電力股大漲
- 焦點短訊!據(jù)上海鋼聯(lián)數(shù)據(jù)顯示,電池級碳酸鋰均價較上日下跌0.10萬元/噸,報31.40萬元/噸。
- 環(huán)球滾動:一戰(zhàn)中的閃避王是誰?
- 天天快資訊:31名選手集結(jié)!杭州亞運會電競項目國家隊完整名單
- 海南周刊 | 盲人調(diào)律師王鈺:用耳朵找回走失的音符
- 大桶鮮果茶限時上新,冰雪時光和你清爽一夏