zoukankan      html  css  js  c++  java
  • Javascript中的Array(数组) 、{}(映射) 与JSON解析

    做网页总会使用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)来执行。

    参考:

    http://www.cnblogs.com/myjavawork/archive/2011/03/10/1979279.html

    http://www.cnblogs.com/lidabo/archive/2011/12/29/2305770.html

    http://www.sojson.com/

  • 相关阅读:
    C/C++之文件打开方式差别
    C/C++获取文件大小
    dedecms使用
    TCP/IP概念简述
    protobuf新增message报错:类型已存在
    亚马逊MWS开发套路演示
    请求MWS报错401:Access Denied
    敏捷开发
    过滤器和拦截器的区别
    防盗链
  • 原文地址:https://www.cnblogs.com/xudong-bupt/p/3909743.html
Copyright © 2011-2022 走看看