设计与应用JavaScript对象符号JSON

ZDNet软件频道 时间:2006-11-21 作者:Builder.com.cn |  我要评论(7)
本文关键词:Javascript TonyPatton XML xml 对象符号
XML是作为一种数据交换工具开发并推出的,但并不是所有开发者都支持这一工具。实际上一些开发者选择开发其它工具。JSON(JavaScript对象符号)就是其中之一。

XML是作为一种数据交换工具开发并推出的,但并不是所有开发者都支持这一工具。实际上一些开发者选择开发其它工具。JSONJavascript对象符号)就是其中之一。在本文中,我们来详细了解一下JSON的设计与应用。

 

JSON简介

JSON是一种用Javascript对象符号格式化文本的简单方法。与其它更为流行的面向对象设计技术不同的是,人们经常称它为面向数据工具。由于它使用编程结构,因此易于为人与机器进行阅读。

JSON旨在传送基于文本的数据,所以它不支持任何类型的二进制对象。基本上,它支持两种类型的数据结构:名称/值对集合(如对象)和有序数值列表(如数组)。下面的列表详细说明了JSON支持的数据元素:

  • Objects(对象):以大括号( {})开始并结束的对象。
  • Object members(对象成员):由以冒号(:)分隔的字符串和值组成的元素。成员之间用逗号(,)隔开。
  • Arrays(数组):数据用大括号定义。也就是说,它们以大括号({})开始并结束。数组由值构成,这些值位于大括号之中,不同值之间以逗号隔开。
  • Values(值):单独的值可能为字符串、数字、对象、或一个文字值,如真、假和零。字符串值位于双引号中,可能包含Unicode字符和反斜扛或转义字符。字符是一个单独的字符串。

简单是JSON的一个主要优势——它比与之对应的XML要简单得多。用一个显示JSON数据语法和格式化的例子就能清楚证明这一点。下面的代码片断使用JSON来建立一个网址数组:

{

"websites":[

"http://www.techrepublic.com/",

"http://www.cnet.com/",

http://www.news.com/

] }

要用XML方便地定义同样的数据,可能相当困难。

为何不使用XML

XML是一个优秀的数据工具。它允许你建立标签等符号来描述任何类型任何数量的数据。另外,它还是IT业的知名标准。

另一方面,对许多任务来说,XML的功能可能过于强大,并会增加许多额外的开销。而且,不管它建立起来多么方便,(人类)却无法阅读这些代码。

让我们用XML格式化前面的例子:

<?XML version="1.0"?>

<websites>

<website>http://www.techrepublic.com/</website>

<website>http://www.cnet.com/</website>

<website>http://www.news.com/</website>

</websites>

你可能认为这两个例子之间没有太大的差别。但是,在XML中要传送的字符数量几乎增加了一倍。对一个简单的例子而言,这可能不是一个大问题。但让我们看看下面的一个更加复杂的JSON实例:

{

"book":{

"title":"The Quiet American",

"author":"Graham Greene",

"date_published":"9/28/2004",

"publisher":"Penguin Classics",

"isbn": "0143039024",

"language":"English",

"format":"paperback",

"pages":"208"

} }

下面是对应的XML代码:

<books>

<book>

<title>The Quiet American</title>

<author>Graham Greene</author>

<date_published>9/8/2004</date_published>

<publisher>Penguin Classics</publisher>

<isbn>0143039024</isbn>

<language>English</language>

<format>paperback</format>

<pages>208</pages>

</book>

</books>

XML方法包含更多的文本,因此需要通过网络传输更多的数据。随着数据增长和/或变得更加复杂,XML的数量也相应增加。

 

 

Javascript

TonyPatton

XML

xml

对象符号


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134