您的位置:首页 > 编程学习 > Web > 正文

json的语法

更多 时间:2014-3-9 类别:编程学习 浏览量:1183

json的语法

json的语法

JSON规范是符合ECMAScript语法规范,这样按JSON规范描述出的字符串已是 JavaScript的原生代码串,这使之能通过eval动态的在JSON串与JavaScript对象之间进行转换。

 

一、Json的定义

 

1、JSON 语法是 JavaScript 对象表示法语法的子集

 

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

 

2、JSON的语法很简单

就是使用大括号'{}',中括号'[]',逗号',',冒号':',双引号'“”'。

 

3、JSON 值可以是

 

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

 

1)对象是一个无序的“‘名称/值’对”集合

一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。数据结构为 {key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值。

例如

{ "firstName":"John" , "lastName":"Doe" }

JavaScript 语句等价

firstName = "John"
lastName = "Doe"

 

 

2)数组是值(value)的有序集合

一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔,数据结构为 ["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取

例如

{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

 

在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。

 

3)JSON语法可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。

 

4)字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。 字符串(string)与C或者Java的字符串非常相似。

 

5)JSON语法也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

 

二、把JSON字符串转换成JavaScript对象

 

  • HTML 代码   复制
  • 
    <script type="text/javascript">
            //使用script本身的函数eval将JSON串解析成对象
        var e = eval(
                        '({' +
                        'employee : ' +
                        '{' +
                            'firstName: "John",' +
                            'lastName : "Doe",' +
                            'employeeNumber : 123,' +
                            'title : "Accountant"' +
                        '}' +
                        '})'
                    );
            //现在我们可以使用e这个对象了,还可以以点的访问形式来访问对象的属性
        alert(e.employee.firstName);
        alert(e.employee.lastName);
        alert(e.employee.employeeNumber);
        alert(e.employee.title);
    </script> 
    
    		
  •  

     

    三、JSON优缺点

     

    优点

      乍看上去,使用JSON的数据分隔符的优点可能并不那么明显,但存在一个根本性的缘由:它们简化了数据访问。使用这些数据分隔符时, JavaScript引擎对数据结构(如字符串、数组、对象)的内部表示恰好与这些符号相同。


      JSON的另一个优点是它的非冗长性。在XML中,打开和关闭标记是必需的,这样才能满足标记的依从性;而在JSON中,所有这些要求只需通过一个简单的括号即可满足。在包含有数以百计字段的数据交换中,传统的XML标记将会延长数据交换时间


      此外,JSON受到了擅长不同编程语言的开发人员的青睐。这是因为无论在Haskell中或 Lisp中,还是在更为主流的C#和Java中,开发都可以方便地生成JSON。

     

    缺点

      和许多好东西都具有两面性一样,JSON的非冗长性也不例外,为此JSON丢失了XML具有的一些特性。命名空间允许不同上下文中的相同的信息段彼此混合,然而,显然在JSON中已经找不到了命名空间。JSON与XML的另一个差别是属性的差异,由于JSON采用冒号赋值,这将导致当XML转化为 JSON时,在标识符(XML CDATA)与实际属性值之间很难区分谁应该被当作文本考虑。
      另外,JSON片段的创建和验证过程比一般的XML稍显复杂。从这一点来看,XML在开发工具方面领先于JSON。

     

    四、JSON Vs XML

    1.JSON和XML的数据可读性基本相同

    2.JSON和XML同样拥有丰富的解析手段

    3.JSON相对于XML来讲,数据的体积小

    4.JSON与JavaScript的交互更加方便

    5.JSON对数据的描述性比XML较差

  • 6.JSON的速度要远远快于XML
  •  

    标签:json
  • 上一篇:CSS命名规范
  • 下一篇:json和xml比较与区别