AJAX——JSON数据格式

    xiaoxiao2021-03-25  166

            JSON数据格式,前段时间一直听他们合作的说,但是不知道是什么,这次终于明白了,其实就是一种类似于XML的数据传输格式。下边我从定义,语法,转换为JavaScript对象以及与XML的比较四个方面介绍一下。

            一,先看一下定义吧,这是百度百科中的:

            JSON(JavaScriptObject Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl,Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

            二,看一下它的语法使用规则:

                  首先我们来看一个例子吧,通过这个例子来学习它的各种语法规则吧:

    [javascript]  view plain  copy  print ? <span style="font-size:18px;"><html>   <body>   <h2>通过 JSON 字符串来创建对象</h3>   <p>First Name: <span id="fname"></span></p>    <p>First Name: <span id="fname2"></span></p>       <script type="text/javascript">   //定义为employees为JSON数据格式的,里边包含了三个对象   var employees = [   "firstName":"Bill" , "lastName":"Gates" },   "firstName":"George" , "lastName":"Bush" },   "firstName":"Thomas" , "lastName""Carter" }   ];   employees[1].firstName="刘佳翰";   document.getElementById("fname").innerHTML=employees[0].firstName;   document.getElementById("fname2").innerHTML=employees[1].firstName;   </script>      </body>   </html>   </span>  

               语法一:JSON 数据的书写格式是:名称/值对。

    名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值;例如上边的:"firstName":"Bill"

      语法二:JSON 值可以是:

    数字(整数或浮点数)

    字符串(在双引号中)

    逻辑值(true或 false)

    数组(在方括号中)

    对象(在花括号中)

    null

               语法三:JSON对象:

    JSON 对象在花括号中书写

    对象可以包含多个名称/值对

      语法四:JSON数组:

    JSON 数组在方括号中书写

    数组可包含多个对象

            三,如何将JSON数据格式转换为JavaScript对象呢,我们可以利用内置函数eval().这点在例子中看:

    [javascript]  view plain  copy  print ? <span style="font-size:18px;"><script type="text/javascript">            //定义json数据格式json1和json2       var json1 = "{'employees':[" +       "{'firstName':'Bill','lastName':'Gates' }," +       "{'firstName':'George','lastName':'Bush' }," +       "{'firstName':'Thomas','lastName':'Carter' }]}";          var json2 = "[1,2,{a:123,b:'String',c:[100,1001]}]";          //这里为什么用("(" + json1 +")"),eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,       //在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。          var obj = eval("(" + json1 +")");       var jsonArray = eval(json2);       document.getElementById("fname").innerHTML = obj.employees[1].firstName       document.getElementById("lname").innerHTML = obj.employees[1].lastName       alert(jsonArray[1]);   </script>   </span>  

             当然这是我们方便学习在前台写的JSON数据格式,直接调用的,而在实际应用中,我们更多是将后台传输的格式写成JSON的,然后传到前台,再进行各种处理使用。

     

         四,JSON数据格式和XML的比较:

                先看一下两个例子吧:

                      XML表示如下:

    [html]  view plain  copy  print ? <span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?>   <country>       <name>中国</name>       <province>           <name>黑龙江</name>           <cities>               <city>哈尔滨</city>               <city>大庆</city>           </cities>       </province>       <province>           <name>广东</name>           <cities>               <city>广州</city>               <city>深圳</city>               <city>珠海</city>           </cities>       </province>       <province>           <name>台湾</name>           <cities>               <city>台北</city>               <city>高雄</city>           </cities>       </province>       <province>           <name>新疆</name>           <cities>               <city>乌鲁木齐</city>           </cities>       </province>   </country>   </span>  

         JSON表示如下:

    [javascript]  view plain  copy  print ? <span style="font-size:18px;">{       "name":"中国",       "province":[       {          "name":"黑龙江",           "cities":{               "city":["哈尔滨","大庆"]           }        },        {           "name":"广东",           "cities":{               "city":["广州","深圳","珠海"]           }       },       {           "name":"台湾",           "cities":{               "city":["台北","高雄"]           }       },       {           "name":"新疆",           "cities":{               "city":["乌鲁木齐"]           }       }   ]   }   </span>  

          两者相同之处:

    是纯文本 具有“自我描述性”(人类可读) 具有层级结构(值中存在值) 可通过 JavaScript 进行解析 可使用 AJAX 进行传输

       

       两者不同之处:

    JSON没有结束标签JSON更短JSON读写的速度更快JSON能够使用内建的 JavaScript eval() 方法进行解析JSON使用数组JSON不使用保留字

     

          AJAX传输异步数据为什么使用JSON呢?

    对于 AJAX应用程序来说,JSON XML更快更易使用:

    使用 XML

    读取 XML文档 使用 XML DOM来循环遍历文档读取值并存储在变量中

    使用 JSON

    读取 JSON字符串 eval()处理 JSON字符串

     这样就能看出我们利用JSON传输数据的快捷了。

             综上为JSON的基础学习,虽然知识点不大,但是还是非常重要的知识,学习好JSON,可以更方便更快捷的为我们的AJAX传输异步数据进行。AJAX的学习中……

    转载请注明原文地址: https://ju.6miu.com/read-6078.html

    最新回复(0)