Javascript中的Array(数组) 、{}(映射) 与JSON解析分析

不点 阅读:157 2020-10-18 22:04:23 评论:0

做网页总会使用javascript,使用javascript总会使用JSON。最近用到一下,就写写。

下面是总结:

1.将javascript中的Array和{}转化为json字符串可以使用json2.js,源码地址https://github.com/douglascrockford/JSON-js

2.将json字符串转为javascript对象,可以使用javascript自带的eval函数。

3.javascript中可以使用typeof查看变量的类型。

4.要访问json字段,必须是对对象的访问。

jquery实例代码:

 1     <script type="text/javascript"> 
 2         $(function(){ 
 3             var myArray=new Array();    ///数组 
 4             myArray[0]="fgh"; 
 5             myArray[1]="rt"; 
 6             myArray[2]="xc"; 
 7             var arrString=JSON.stringify(myArray);    //将myArray对象转化为字符串 
 8             alert(arrString);    //["fgh","rt","xc"] 
 9             var obj1=eval("("+arrString+")");    ///eval将字符串转为json对象,注意在两边加上"("和")" 
10             alert("数组第1个元素"+obj1[0]); 
11  
12             var myMap = {};    //对象 
13             myMap['name'] = "lxd"; 
14             myMap['age'] = 20; 
15             myMap['content'] = myArray;     
16             var mapString=JSON.stringify(myMap);    ///将myMap对象转化为字符串 
17             alert(mapString);    ///{"name":"lxd","age":20,"content":["fgh","rt","xc"]} 
18             var obj2=eval("("+mapString+")"); 
19             alert("map中的name字段:"+obj2.name); 
20         }); 
21     </script>

 为什么eval("("+mapString+")")

  eval本身的问题。 由于json可能是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

  加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。

声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
关注我们

扫一扫关注我们,了解最新精彩内容