首頁 > web前端 > js教程 > js讀取並解析JSON類型資料的方法_javascript技巧

js讀取並解析JSON類型資料的方法_javascript技巧

WBOY
發布: 2016-05-16 15:32:27
原創
1298 人瀏覽過

本文實例講述了js讀取並解析JSON類型資料的方法。分享給大家參考,具體如下:

一、什麼是JSON?

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式,採用完全獨立於語言的文字格式,是理想的資料交換格式,同時,JSON是 JavaScript 原生格式。
非常適合伺服器與 JavaScript 的互動

二、為什麼要用JSON而不是XML

他們都是這樣說的:儘管有許多宣傳關於XML 如何擁有跨平台,跨語言的優勢,然而,除非應用於Web Services,否則,在普通的Web 應用中,開發者經常為XML 的解析傷透了腦筋,無論是伺服器端產生或處理XML,或是客戶端用JavaScript 解析XML,都常常導致複雜的程式碼,極低的開發效率。實際上,對於大多數 Web 應用來說,他們根本不需要複雜的 XML 來傳輸數據,XML 的擴展性很少具有優勢,許多 AJAX 應用程式甚至直接返回 HTML 片段來建立動態 Web 頁面。和返回 XML 並解析它相比,返回 HTML 片段大大降低了系統的複雜性,但同時缺少了一定的靈活性

三、如何使用

下面程式碼是html程式碼片段,實作點擊按鈕解析json格式資料並alert內容

複製程式碼

程式碼如下:
var json = {
  contry:{
  area:{
   man:"12万",
   women:"10万"
  }
  }
 };
//方式一:使用eval解析
 var obj = eval(json);
 alert(obj.constructor);
 alert(obj.contry.area.women);
 //方式二:使用Funtion函数
 var strJSON = "{name:'json name'}";//得到的JSON
 var obj = new Function("return" + strJSON)();//转换后的JSON对象
 alert(obj.name);//json name
 alert(obj.constructor);
//复杂一点的json数组数据的解析
 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);
 //复杂一点的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);
}
登入後複製
下面是js函數程式碼:

四、eval

① 這種形式將使效能顯著降低,因為它必須運行編譯器

② eval函數也減弱了你的應用的安全性,因為它給了被求值的文字太多的權力。就像with語句執行的方式一樣,它降低了語言的表現

③ Function構造器是eval的另一種形式,所以它同樣也應該被避免使用。 希望本文所述對大家JavaScript程式設計有所幫助。
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板