JSON技术介绍

  • 轻量级的数据交换格式
  • 人们读写更加容易
  • 易于机器的解析和生成
  • 能够通过JavaScript中eval()函数解析JSON
  • JSON支持多语言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.

  • JSON语法是一种用于传输和生成数据的协定,很类似于C家族的语言,所以很容易被C家族的语言所解析。
    对象:对象包含再{}之间
    属性:采用Key-Value对来表示。属性之间使用逗号分开。  string : value
    数组:数组存放再[]之间   [ elements ]
    元素:元素之间用逗号分开
    值:值可以是字符串,数字,对象,数组,true,false,null

    例子:


    JSON:

    {"menu": {  
       "id": "file",
       "value": "File:",  
       "popup": {  
         "menuitem": [ 
           {"value": "New", "onclick": "CreateNewDoc()"}, 
           {"value": "Open", "onclick": "OpenDoc()"},  
           {"value": "Close", "onclick": "CloseDoc()"} ] 
       } 
    }} 
    

     

    XML:

    <menu id="file" value="File" > 
       <popup> 
         <menuitem value="New" onclick="CreateNewDoc()" /> 
         <menuitem value="Open" onclick="OpenDoc()" /> 
         <menuitem value="Close" onclick="CloseDoc()" /> 
       </popup> 
    </menu>
    

     

    XML 的作用是格式化数据内容。如果我们不用XML还有什么更好的方法吗?这个答案是JSON。介绍JSON之前我先介绍一下JavaScript这门脚本语 言。脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本 一样被执行。

    <HTML>
    <HEAD>
     <TITLE>eval example 1</TITLE>
    </HEAD>
    <BODY>
     <script>
      str = "alert('hello')";
      eval(str);
     </script>
    </BODY>
    </HTML>  

     

    打开页面会弹出hello窗口。我们可以在字符串中放任何脚本语句,包括声明语句,等等一系列东西,比如:

    <HTML>
    <HEAD>
    <TITLE>eval example 2</TITLE>
    </HEAD>
    <BODY>
    <script>
     define = "{name:'Michael',email:'[email protected]'}";
     eval("data = "+define);
     alert("name:"+data.name);
     alert("email:"+data.email);
    </script>
    </BODY>
    </HTML> 

     

    如果我们在后台异步传来的文本是JavaScript的声明语句,那么不是一条eval方法就能解析了?对于解析复杂的XML,这样的效率是多么大的提高啊!现在就来告诉你什么是JSON:JavaScript Object Notation。我更愿意把它翻译为JavaScript对象声明。比如要从后台载入一些通讯录的信息,如果写成XML,如下:

    <contact>
     <friend>
      <name>Michael</name>
      <email>[email protected]</email>
      <homepage>http://www.jialing.net</homepage>
     </friend>
     <friend>
      <name>John</name>
      <email>[email protected]</email>
      <homepage>http://www.john.com</homepage>
     </friend>
     <friend>
      <name>Peggy</name>
      <email>[email protected]</email>
      <homepage>http://www.peggy.com</homepage>
     </friend>
    </contact> 
    

     

    而写成JSON呢,就如下面:

    [
    {
     name:"Michael",
     email:"[email protected]",
     homepage:"http://www.jialing.net"
    },
    {
     name:"John",
     email:"[email protected]",
     homepage:"http://www.jobn.com"
    },
    {
     name:"Peggy",
     email:"[email protected]",
     homepage:"http://www.peggy.com"
    }
    ] 
    

     

    简单的不只是表达上,最重要的是可以丢弃让人晕头转向的DOM解析了。因为只要符合JavaScript的声明规范,JavaScrip会自动帮你解析好 的。Ajax中使用JSON的基本方法是前台载入后台声明JavaScript对象的字符串,用eval方法来将它转为实际的对象,最后通过 DHTML更新页面信息。

    你可能感兴趣的:(JavaScript,json,脚本,lua,Gmail)