JSON

JSON简介

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. JSON指的是JavaScript对象表示法(JavaScript Object Notation)  
  2. JSON用来存储和交换文本信息  
  3. JSON是纯文本的  
  4. JSON具有自我描述性  
  5. JSON具有层级结构  
  6. JSON可通过JavaScript进行解析  
  7. JSON数据可以使用AJAX进行传输  
JSON语法

[plain]  view plain copy 在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 plain copy 在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 plain copy 在CODE上查看代码片 派生到我的代码片
  1. JSON文件的文件类型是 .json  
  2. JSON文本的MIME类型是 application/json  
JSON文本转换为JavaScript对象

[javascript]  view plain copy 在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 plain copy 在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 plain copy 在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>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值