欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js讀取并解析JSON類型數(shù)據(jù)的方法

 更新時(shí)間:2015年11月14日 16:22:21   作者:harver  
這篇文章主要介紹了js讀取并解析JSON類型數(shù)據(jù)的方法,具體分析了json格式的功能、用途與JS解析技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(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)容

復(fù)制代碼 代碼如下:
<input type="button" value="button" onclick="clicks();"/>

下面是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ì)有所幫助。

相關(guān)文章

最新評(píng)論