分享

Json

 印度阿三17 2018-10-14
  1. JSON指的是JavaScript对象表示法(JavaScript Object Notation)

  2. JSON用来存储和交换文本信息

  3. JSON是纯文本的

  4. JSON具有自我描述性

  5. JSON具有层级结构

  6. JSON可通过JavaScript进行解析

  7. JSON数据可以使用AJAX进行传输

  8.  

JSON语法

 
  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的数组

  13.  

两种JSON数组遍历的两种方法

 
  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. <script>

  19. var txt = '{"student":[{"name":"lwc","age":26},{"name":"nxj","age":24}]}';

  20. var obj = eval('(' txt ')');

  21. var arry = obj.student;

  22. for(var i=0;i<arry.length;i ){

  23. alert(arry[i].name)

  24. }

  25. </script>

  26.  

JSON文件

 
  1. JSON文件的文件类型是 .json

  2. JSON文本的MIME类型是 application/json

  3.  

JSON文本转换为JavaScript对象

 
  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>

  21.  
  22.  

IE6,IE7下JSON.parse JSON未定义的解决方法

 
  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

  21.  
  •  

eval() vs JSON.parse( ) vs JSON.stringify()

 
  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>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多