新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 讨论HTML、XHTML、Web2.0、Ajax、XUL, ExtJS, jQuery, JSON、Social Networking System(SNS)、Rich Internet Applications (RIA)、Tagging System、Taxonomy(tagsonomy,folkonomy)、XForms、XFrames、XInclude, XBL (XML Binding Language)等话题
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』 → 设计与应用JavaScript对象符号JSON 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 5960 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 设计与应用JavaScript对象符号JSON 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     hongjuesir 帅哥哟,离线,有人找我吗?魔羯座1982-1-1
      
      
      等级:大三(要不要学学XML呢?)
      文章:73
      积分:625
      门派:XML.ORG.CN
      注册:2007/6/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给hongjuesir发送一个短消息 把hongjuesir加入好友 查看hongjuesir的个人资料 搜索hongjuesir在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 点击这里发送电邮给hongjuesir 访问hongjuesir的主页 引用回复这个贴子 回复这个贴子 查看hongjuesir的博客楼主
    发贴心情 设计与应用JavaScript对象符号JSON

    XML是作为一种数据交换工具开发并推出的,但并不是所有开发者都支持这一工具。实际上一些开发者选择开发其它工具。JSON(JavaScript对象符号)就是其中之一。在本文中,我们来详细了解一下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的数量也相应增加。

    处理JSON数据

    要应用JSON,你需要像处理XML一样对JSON格式的数据进行解析。

    由于其设计简单,所以用JavaScript内置的eval()过程可以很方便地对JSON进行解析,如下面的代码片断所示:

    testObject = eval('(' + json_data + ')');

    也可以应用JSON解析器进行解析操作。Json.ory网站提供了一个同样使用eval过程的解析器。另外,Ajax.NET专业包中包含了一个单独的解析器,开发者可以用它处理微软.NET Framework。Yahoo!开发者网络也提供用Python和PHP解析JSON的库。

    另一种选择

    JSON是一种根据JavaScript对象符号描述并传输数据的简单方法。JSON的最大优势在于速度,因为它需要传输的数据比XML传输的数据要少,因此传输的速度更快。虽然XML也有它的优势,但我认为,在数据交换方面,JSON是XML之外的另一可行选择。

    Tony Patton拥有丰富的Java、VB、Lotus及XML方面的知识,是一个专业的应用程序开发人员。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    踏实啃书

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/9/24 12:06:00
     
     GoogleAdSense魔羯座1982-1-1
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』的所有贴子 点击这里发送电邮给Google AdSense 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/12 23:34:40

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    46.875ms