JSON

轉自:http://blog.csdn.net/itlwc/article/details/9842583

JSON簡介

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. JSON指的是JavaScript對象表示法(JavaScript Object Notation)  
  2. JSON用來存儲和交換文本信息  
  3. JSON是純文本的  
  4. JSON具有自我描述性  
  5. JSON具有層級結構  
  6. JSON可通過JavaScript進行解析  
  7. JSON數據可以使用AJAX進行傳輸  
JSON語法

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. JSON語法是JavaScript語法的子集  
  2. JSON數據的書寫格式是:名稱/值對  
  3. JSON值  
  4.     數字(整數或浮點數)  
  5.     字符串(在雙引號中)  
  6.     邏輯值(true 或 false)  
  7.     數組(在方括號中)  
  8.     對象(在花括號中)  
  9.     null  
  10. 數據由逗號分隔  
  11. var txt = '{"student":[{"name":"lwc","age":26},{"name":"nxj","age":24}]}';  
  12.     創建一個單獨成員student對象,此成員包含兩個對象name,age的數組  
兩種JSON數組遍歷的兩種方法

[javascript] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. <script>  
  2.     var JSONObject= [  
  3.         {  
  4.             "name":"lwc",  
  5.             "age":26  
  6.         },{  
  7.             "name":"nxj",  
  8.             "age":24  
  9.         }  
  10.     ]  
  11.     for(var j in JSONObject){  
  12.         alert(JSONObject[j].name)  
  13.     }  
  14.     for(var i=0;i<JSONObject.length;i++){  
  15.         alert(JSONObject[i].name)  
  16.     }  
  17. </script>  
  18.   
  19. <script>  
  20.     var txt = '{"student":[{"name":"lwc","age":26},{"name":"nxj","age":24}]}';  
  21.     var obj = eval('('+txt+')');  
  22.     var arry = obj.student;  
  23.     for(var i=0;i<arry.length;i++){  
  24.         alert(arry[i].name)  
  25.     }  
  26. </script>  
JSON文件

[plain] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. JSON文件的文件類型是 .json  
  2. JSON文本的MIME類型是 application/json  
JSON文本轉換爲JavaScript對象

[javascript] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. name: <span id="name"></span><br />  
  2. age: <span id="age"></span><br />  
  3.   
  4. 使用JavaScript函數eval()可用於將JSON文本轉換爲JavaScript對象  
  5. <script>  
  6.     var txt = '{"student":[{"name":"lwc","age":26}]}';  
  7.     var obj = eval('('+txt+')');  
  8.     var arry = obj.student;  
  9.     document.getElementById("name").innerHTML=arry[0].name;  
  10.     document.getElementById("age").innerHTML=arry[0].age;  
  11. </script>  
  12.   
  13. 使用JSON解析器將JSON字符串轉換爲對象(IE8以下版本不支持JSON對象)  
  14. <script>  
  15.     var txt = '{"student":[{"name":"lwc","age":26}]}';  
  16.     var obj = JSON.parse(txt);  
  17.     var arry = obj.student;  
  18.     document.getElementById("name").innerHTML=arry[0].name;  
  19.     document.getElementById("age").innerHTML=arry[0].age;  
  20. </script>  
IE6,IE7下JSON.parse JSON未定義的解決方法

[javascript] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. 方法一:  
  2.     <script>  
  3.         var txt = '{"student":[{"name":"lwc","age":26}]}';    
  4.         var obj;    
  5.         if (typeof(JSON) == 'undefined'){    
  6.              obj = eval("("+txt+")");    
  7.         }else{    
  8.              obj = JSON.parse(txt);    
  9.         }  
  10.     </script>  
  11. 方法二:調用json2.js(推薦)  
  12.     <script type="text/javascript" src="js/json2.js"></script>  
  13.     <script>  
  14.         var txt = '{"student":[{"name":"lwc","age":26}]}';  
  15.         var obj = JSON.parse(txt);  
  16.         var arry = obj.student;  
  17.         document.getElementById("name").innerHTML=arry[0].name;  
  18.         document.getElementById("age").innerHTML=arry[0].age;  
  19.     </script>  
  20.     json2.js下載地址 http://download.csdn.net/detail/itlwc/5893971  
eval() vs JSON.parse() vs JSON.stringify()

[javascript] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. eval()  
  2.     使用eval()講JSON文本轉換爲對象,eval()是調用JavaScript編譯器  
  3.     由於JSON是JavaScript的子集,因此編譯器正確的解析文本產生對象  
  4.     eval()非常快速,他可以編譯執行任何JavaScript,因此產生了安全性問題  
  5.     當使用可信任,完善的JavaScript程序時纔可以使用eval()  
  6.     使用XMLHttpRequest的web應用,頁面之間通訊是同源的,因此是可信任的,但不完善  
  7.     如果服務器沒有嚴謹的JSON編碼,或者沒有嚴格的輸入驗證,那麼可能傳送包括危險腳本的無效JSON文本  
  8.     eval()將執行惡意的腳本  
  9. JSON.parse()  
  10.     JSON.parse()解析器只能辨識JSON文本,拒絕所有腳本  
  11.     提供了本地JSON支持的瀏覽器的JSON解析器將遠快於eval函數  
  12.     預計未來的ECMAScript標準將支持本地JSON  
  13. JSON.stringify()  
  14.     JSON.stringify()進行反向操作,可以將JavaScript轉換爲JSON文本  
  15.     JSON不支持循環數據,因此不要爲JSON.stringify()提供循環數據  
  16.     案例  
  17.         <script>  
  18.             var txt = {"name":"lwc","age":26};  
  19.             var str = JSON.stringify(txt);  
  20.             alert(str);  
  21.         </script>  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章