JSON

JSON数据格式理解学习笔记

字号+ 作者:H5之家 来源:H5之家 2017-01-22 09:10 我要评论( )

JSON数据格式是一种轻型的与xml相比更快速的个实时交互的数据存储格式了,下面我来给大家整理了一些我对JSON数据格式理解片段,希望此教程对大家有帮助。

JSON数据格式是一种轻型的与xml相比更快速的个实时交互的数据存储格式了,下面我来给大家整理了一些我对JSON数据格式理解片段,希望此教程对大家有帮助。

1. 什么是 JSON

JSON概念很简单,JSON 是一种轻量级的数据格式,他基于 javascript 语法的子集,即数组和对象表示。由于使用的是 javascript 语法,因此JSON 定义可以包含在javascript 文件中,对其的访问无需通过基于 XML 的语言来额外解析。不过在使用 JSON 之前,很重要的一点是理解 javascript 中数组及对象字面量的特殊语法。


Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

    1) 并列的数据之间用逗号(", ")分隔。

    2) 映射用冒号(": ")表示。

    3) 并列数据的集合(数组)用方括号("[]")表示。

    4) 映射的集合(对象)用大括号("{}")表示。


1.1 数组字面量

数组字面量,是用一对方括号括起一组用逗号隔开的 javascript 值,例如:

 代码如下 复制代码

var aNames=["hello", 12, true , null];

1.2 对象字面量

        对象字面量,是通过两个花括号来定义的。在花括号内可以放置任意数量的“名称-值”对,定义格 式字符串值”。除了最后一行外,每个“名称-值”对后必须有一个逗号(这与Perl 中的联合数组的定义有些类似)。例如:

      

 代码如下 复制代码

  var oCar = {

               "color": "red",      

              "doors" : 4,

               "paidFor" : true

        };

1.3 混合字面量

      我们可以混用对象和数组字面量,来创建一个对象数组,或一个包含数组的对象。例如:

 代码如下 复制代码

{comments:[
{
id:1,
author:"someone1",
url:"",
content:"hello"
},
{
id:2,
author:"someone2",
url:"",
content:"hello"
},
{
id:3,
author:"someone3",
url:"",
content:"hello"
}
]};

1.4 JSON 语法

      在Ajax应用中,就是服务器直接生成javascript语句,客户端获取后直接用eval方法来获得这个对象,这样就可以省去解析XML的性能损失。 同时,在javascript 通信中使用JSON作为数据格式的好处很明星,可以立即获得数据的值,因此可以更快的访问其中包含的数据。

      var oCarInfo = eval("(" + sJSON + ")");

请记住:在javascript中花括号也是一个语句。要让解析器知道这个花括号表示的是一个对象而非一个语句的唯一方法是能否找到封装它的圆括号 (它是用来说明代码是一个表达式而非一个语句)。

1.5 JSON 编码和解码

       作为 JSON 资源的一部分,Corockford 开发了一个能够实现 JSON 和Javascript 对象直接解码和编码的工具。这个工具的源程序可以在 中下载。

       在上面提出用到eval() 存在些固有的不足:它是用来对传入的任何 Javascript 代码求值的,而不仅仅针对JSON。因此,当涉及企业级 web 应用程序开发时,它存在很大的安全隐患。为了解决这个问题,可以使用只用来将 JSON 代码转换为 Javascript 的解析器 JSON.parse() 方法来实现。例如:

  

 代码如下 复制代码

     var oObject = JSON.parse (sJSON);

       同时,它也提供了一种将 Javascript 对象转换为 JSON 字符串(数据传输时使用的)的工具(在Javascript 中没有内建这种功能支持)。你要做的只是将对象传入到 JSON.Stringify() 方法。请看下面的例子:

      

 代码如下 复制代码

var oCar = new Object();

       oCar.doors = 4;

        oCar.color = "blue";

       oCar.year = 1995;

       oCar.drivers = new Array("Penny", "Dan" , "Kris");

       document.write(JSON.stringify(oCar));

这段代码将输出如下所示的JSON 字符串:

 代码如下 复制代码

{"doors" : 4, "color" : "blue", "year" :1995, "drivers" : ["Penny", "Dan" , "Kris"]}

2. JSON 与 XML

       正如上面所说,JSON 与 XML 相比的一大优点就是它更加简单。

请看 XML 数据表示实例:

使用XML表示:

 代码如下 复制代码

<comments>
<comment>
<id>1</id>
<author>someone1</author>
<url></url>
<content>hello</content>
</comment>
<comment>
<id>2</id>
<author>someone2</author>
<url></url>
<content>someone1</content>
</comment>
<comment>
<id>3</id>
<author>someone3</author>
<url></url>
<content>hello</content>
</comment>
</comments>


使用JSON表示:

 代码如下 复制代码

 

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

相关文章
  • 掌握 Ajax,第 10 部分: 使用 JSON 进行数据传输

    掌握 Ajax,第 10 部分: 使用 JSON 进行数据传输

    2017-01-22 11:03

  • JavaScript学习总结(六)数据类型和JSON格式 码农网

    JavaScript学习总结(六)数据类型和JSON格式 码农网

    2017-01-21 16:06

  • json教程从入门到使用

    json教程从入门到使用

    2017-01-21 12:07

  •  Json学习笔记

    Json学习笔记

    2017-01-19 10:03

网友点评