js讀取并解析JSON類型數(shù)據(jù)的方法
本文實(shí)例講述了js讀取并解析JSON類型數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
一、什么是JSON?
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,采用完全獨(dú)立于語(yǔ)言的文本格式,是理想的數(shù)據(jù)交換格式,同時(shí),JSON是 JavaScript 原生格式。
非常適合于服務(wù)器與 JavaScript 的交互
二、為什么使用JSON而不是XML
他們都是這樣說(shuō)的:盡管有許多宣傳關(guān)于 XML 如何擁有跨平臺(tái),跨語(yǔ)言的優(yōu)勢(shì),然而,除非應(yīng)用于 Web Services,否則,在普通的 Web 應(yīng)用中,開(kāi)發(fā)者經(jīng)常為 XML 的解析傷透了腦筋,無(wú)論是服務(wù)器端生成或處理 XML,還是客戶端用 JavaScript 解析 XML,都常常導(dǎo)致復(fù)雜的代碼,極低的開(kāi)發(fā)效率。實(shí)際上,對(duì)于大多數(shù) Web 應(yīng)用來(lái)說(shuō),他們根本不需要復(fù)雜的 XML 來(lái)傳輸數(shù)據(jù),XML 的擴(kuò)展性很少具有優(yōu)勢(shì),許多 AJAX 應(yīng)用甚至直接返回 HTML 片段來(lái)構(gòu)建動(dòng)態(tài) Web 頁(yè)面。和返回 XML 并解析它相比,返回 HTML 片段大大降低了系統(tǒng)的復(fù)雜性,但同時(shí)缺少了一定的靈活性
三、如何使用
下面代碼是html代碼片段,實(shí)現(xiàn)點(diǎn)擊按鈕解析json格式數(shù)據(jù)并alert內(nèi)容
下面是js函數(shù)代碼:
var json = { contry:{ area:{ man:"12萬(wàn)", women:"10萬(wàn)" } } }; //方式一:使用eval解析 var obj = eval(json); alert(obj.constructor); alert(obj.contry.area.women); //方式二:使用Funtion函數(shù) var strJSON = "{name:'json name'}";//得到的JSON var obj = new Function("return" + strJSON)();//轉(zhuǎn)換后的JSON對(duì)象 alert(obj.name);//json name alert(obj.constructor); //復(fù)雜一點(diǎn)的json數(shù)組數(shù)據(jù)的解析 var value1 = [ {"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"}, {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"}, {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"} ]; var obj1 = eval(value1); alert(obj1[0].c01); //復(fù)雜一點(diǎn)的json的另一種形式 var value2 = { "list":[ {"password":"1230","username":"coolcooldool"}, {"password":"thisis2","username":"okokok"} ], "array":[ {"password":"1230","username":"coolcooldool"}, {"password":"thisis2","username":"okokok"} ] }; var obj2 = eval(value2); alert(obj2.list[0].password); }
四、eval
① 這種形式將使得性能顯著降低,因?yàn)樗仨氝\(yùn)行編譯器
② eval函數(shù)還減弱了你的應(yīng)用的安全性,因?yàn)樗o被求值的文本賦予了太多的權(quán)力。就像with語(yǔ)句執(zhí)行的方式一樣,它降低了語(yǔ)言的性能
③ Function構(gòu)造器是eval的另一種形式,所以它同樣也應(yīng)該被避免使用。
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- js讀取json文件片段中的數(shù)據(jù)實(shí)例
- 使用MSScriptControl 在 C# 中讀取json數(shù)據(jù)的方法
- Android通過(guò)json向MySQL中讀寫(xiě)數(shù)據(jù)的方法詳解【讀取篇】
- 如何使用ajax讀取Json中的數(shù)據(jù)
- PHP讀取mssql json數(shù)據(jù)中文亂碼的解決辦法
- Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例
- Android中Json數(shù)據(jù)讀取與創(chuàng)建的方法
- python讀取json文件并將數(shù)據(jù)插入到mongodb的方法
- asp實(shí)現(xiàn)讀取數(shù)據(jù)庫(kù)輸出json代碼
- litjson讀取數(shù)據(jù)示例
- javascript 循環(huán)讀取JSON數(shù)據(jù)的代碼
- JSON 數(shù)據(jù)格式詳解
相關(guān)文章
使用layui監(jiān)聽(tīng)器監(jiān)聽(tīng)select下拉框,事件綁定不成功的解決方法
今天小編就為大家分享一篇使用layui監(jiān)聽(tīng)器監(jiān)聽(tīng)select下拉框,事件綁定不成功的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09JavaScript中while循環(huán)的基礎(chǔ)使用教程
這篇文章主要給大家介紹了關(guān)于JavaScript中while循環(huán)的基礎(chǔ)使用教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08JavaScript之面向?qū)ο骭動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
JavaScript的面向?qū)ο缶幊毯痛蠖鄶?shù)其他語(yǔ)言如Java、C#的面向?qū)ο缶幊潭疾惶粯印O旅嫱ㄟ^(guò)本文給大家介紹js面向?qū)ο笾R(shí),包括面向?qū)ο蟮膬蓚€(gè)基本概念,一起看看吧2017-06-06layui form表單提交后實(shí)現(xiàn)自動(dòng)刷新
今天小編就為大家分享一篇layui form表單提交后實(shí)現(xiàn)自動(dòng)刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10JS正則表達(dá)式判斷有效數(shù)實(shí)例代碼
這篇文章主要介紹了JS正則表達(dá)式判斷有效數(shù)實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03js中調(diào)用微信的掃描二維碼功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了在js中調(diào)用微信的掃描二維碼功能的實(shí)現(xiàn)代碼,本文給大家分享了注意事項(xiàng)及常見(jiàn)問(wèn)題分析,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04選擇器的朋友可以試試這個(gè)思路 延遲執(zhí)行歸并選擇操作
因?yàn)橥ǔ_x擇器需要遍歷整個(gè)元素樹(shù),所以當(dāng)多次選擇會(huì)比較耗時(shí),忽然想到是否能利用setTimeout將多次選擇操作歸并到一起2011-01-01bootstrap多層模態(tài)框滾動(dòng)條消失的問(wèn)題
本篇文章主要介紹了bootstrap多層模態(tài)框滾動(dòng)條消失的問(wèn)題,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07