`
javaping2008
  • 浏览: 105867 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
阅读更多

XML——这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了Web services的同义词。我们知道AJAX技术能够使得每一次请求更加迅捷,对于每一次请求返回的不是整个页面,也仅仅是所需要返回的数据。然而,由于Ajax和REST技术的出现影响了应用程序架构,这迫使人们开始寻求`XML的替代品,如:JavaScript Object Notation(JSON)。

JSON 作为一种更轻、更友好的 Web services客户端的格式(多采用浏览器的形式或访问 REST风格 Web服务的Ajax应用程序的形式)引起了 Web 服务供应商的注意。通常AJAX通过返回XML格式的数据,然后再通过客户端复杂的JavaScript脚本解析和渲染这些XML格式的数据。JSON(读Jason)是为了能够使得数据格式成为一种标准,更简单的被JavaScript解析。

本文将阐述JSON在Web services设计中备受推崇的原因,以及它作为XML替代方案的主要优势和局限性。文中还会深入探讨:随着相应的Web 服务客户端选择使用JSON,如何才能便捷地在Java Web services中生成JSON输出。
json的官方文档:http://www.json.org/json-zh.html

JSON的优点


  • 轻量级的数据交换格式
  • 人们读写更加容易
  • 易于机器的解析和生成
  • 能够通过JavaScript中eval()函数解析JSON
  • JSON支持多语言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.


JSON语法是一种用于传输和生成数据的协定,很类似于C家族的语言,所以很容易被C家族的语言所解析。
对象:对象包含再{}之间
属性:采用Key-Value对来表示。属性之间使用逗号分开。  string : value
数组:数组存放再[]之间   [ elements ]
元素:元素之间用逗号分开
值:值可以是字符串,数字,对象,数组,true,false,null

例子:
JSON

{"menu": {  
   "id": "file",
   "value": "File:",  
   "popup": {  
     "menuitem": [
       {"value": "New", "onclick": "CreateNewDoc()"},
       {"value": "Open", "onclick": "OpenDoc()"},  
       {"value": "Close", "onclick": "CloseDoc()"} ]
   }
}}

XML

<menu id="file" value="File" >
   <popup>
     <menuitem value="New" onclick="CreateNewDoc()" />
     <menuitem value="Open" onclick="OpenDoc()" />
     <menuitem value="Close" onclick="CloseDoc()" />
   </popup>
</menu>

XML 的作用是格式化数据内容。如果我们不用XML还有什么更好的方法吗?这个答案是JSON。介绍JSON之前我先介绍一下JavaScript这门脚本语 言。脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本 一样被执行。

<HTML>
<HEAD>
 <TITLE>eval example 1</TITLE>
</HEAD>
<BODY>
 <script>
  str = "alert('hello')";
  eval(str);
 </script>
</BODY>
</HTML>  

打开页面会弹出hello窗口。我们可以在字符串中放任何脚本语句,包括声明语句,等等一系列东西,比如:

<HTML>
<HEAD>
<TITLE>eval example 2</TITLE>
</HEAD>
<BODY>
<script>
 define = "{name:'Michael',email:'17bity@gmail.com'}";
 eval("data = "+define);
 alert("name:"+data.name);
 alert("email:"+data.email);
</script>
</BODY>
</HTML>

如果我们在后台异步传来的文本是JavaScript的声明语句,那么不是一条eval方法就能解析了?对于解析复杂的XML,这样的效率是多么大的提高啊!现在就来告诉你什么是JSON:JavaScript Object Notation。我更愿意把它翻译为JavaScript对象声明。比如要从后台载入一些通讯录的信息,如果写成XML,如下:

<contact>
 <friend>
  <name>Michael</name>
  <email>17bity@gmail.com</email>
  <homepage>http://www.jialing.net</homepage>
 </friend>
 <friend>
  <name>John</name>
  <email>john@gmail.com</email>
  <homepage>http://www.john.com</homepage>
 </friend>
 <friend>
  <name>Peggy</name>
  <email>peggy@gmail.com</email>
  <homepage>http://www.peggy.com</homepage>
 </friend>
</contact>

而写成JSON呢,就如下面:

[
{
 name:"Michael",
 email:"17bity@gmail.com",
 homepage:"http://www.jialing.net"
},
{
 name:"John",
 email:"john@gmail.com",
 homepage:"http://www.jobn.com"
},
{
 name:"Peggy",
 email:"peggy@gmail.com",
 homepage:"http://www.peggy.com"
}
]

简单的不只是表达上,最重要的是可以丢弃让人晕头转向的DOM解析了。因为只要符合JavaScript的声明规范,JavaScrip会自动帮你解析好 的。Ajax中使用JSON的基本方法是前台载入后台声明JavaScript对象的字符串,用eval方法来将它转为实际的对象,最后通过 DHTML更新页面信息。

分享到:
评论

相关推荐

    java json xml转换

    在IT行业中,数据交换和存储经常需要在不同的格式之间转换,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)就是两种常见的数据表示格式。Java作为广泛应用的编程语言,提供了丰富的库来...

    Qt-Jsonxml.zip

    在本文中,我们将深入探讨Qt库中的JSON和XML处理,主要基于提供的压缩包"Qt-Jsonxml.zip"中的示例代码。这个压缩包包含了作者在Qt开发过程中对这两种数据格式解析的总结,以及可以直接运行的工程文件。我们将讨论...

    json xml 解析demo

    json xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demo

    C#JSon XML序列化与反序列化工具

    本文将详细讲解C#中JSON和XML的序列化与反序列化工具,以及如何自制一个实用的解析工具。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。在...

    (C#)json to xml 解析转换源代码

    在IT行业中,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式。它们各自具有独特的特性和用途,但有时我们需要在两者之间进行转换,以便于不同的系统或库之间...

    JsonXml极速一键美化V1.1.exe

    无论是在日常的开发过程还是与第三方做接口,我们免不了会对Json或Xml进行格式美化,若是以前,我都是打开网页,搜索在线...基于以上种种原因,我开发了一个集成在一起的JsonXml一键美化工具,灰常地银性,灰常地好用。

    jQuery xml-to-json xml转JSON插件

    jQuery xml-to-json插件是一种用于将XML数据转换为JavaScript Object Notation (JSON)格式的工具。在Web开发中,XML和JSON都是常见的数据交换格式,但它们有着不同的应用场景和优势。XML(Extensible Markup ...

    json转xml插件工具

    - JQuery - jquery.json2xml.js - jquery.xml2json.js 2. XML 字符串转换成 JSON 对象 $.xml2json(str); 3. JSON 对象转换成 XML 字符串 $.json2xml(obj);

    js下xml转json和json转xml

    在JavaScript(JS)环境中,XML(Extensible Markup Language)与JSON(JavaScript Object Notation)之间的转换是常见的数据处理任务。XML是一种结构化数据格式,常用于数据交换,而JSON则是轻量级的数据交换格式,...

    Json和Xml离线格式化工具

    在IT行业中,数据交换和存储经常涉及两种常见的数据序列化格式:JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)。JSON以其简洁、易读性而被广泛用于Web服务,而XML则因其丰富的结构和强大...

    Label me json xml 互转

    还在因为CVAT(Computer Vision ...内有三个功能:Json 转 xml, xml 转 Json, 以及合并两个对应同一批图片的Json打标内容. 不需要Datumaro。 完全满足你的目标识别打标,包括矩形框(rectangle), 多边形(polygon)。

    Json xml Pull

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在软件开发中扮演着重要的角色。JSON因其简洁、易读的特性,常用于网络API的数据传输,而XML则因为其...

    android xml转jsonxml转json(两种,一种jar包一种工程lib)

    在Android开发中,数据交换和存储经常涉及到XML与JSON这两种格式的转换。XML(Extensible Markup Language)是一种结构化数据格式,常用于Web服务和配置文件;而JSON(JavaScript Object Notation)则是一种轻量级的...

    mac上sublime 支持json, xml 格式化

    为了更好地处理JSON和XML这两种常见的数据格式,Sublime Text提供了相应的插件支持,使得格式化这两种文件变得更加方便。这篇博文()可能详细介绍了如何在Sublime Text中安装和使用这些插件。 **JSON格式化** ...

    DataFormater.json xml解析

    本话题主要聚焦于"DataFormater.json"与XML之间的解析工作,以及如何在本地化和单机环境中进行操作。这里我们将深入探讨JSON和XML两种数据交换格式,理解它们的基本结构和特性,以及在实际应用中如何相互转换。 ...

    json和xml互转

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在互联网上用于传递和存储结构化数据。JSON以其简洁、易读的特性受到开发者喜爱,而XML则以其丰富的结构...

    android 调用Json xml例子

    在Android开发中,数据交换和存储常常涉及到JSON和XML两种格式。JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)都是常见的数据序列化格式,它们用于在网络上传输数据或者存储在本地文件中...

    JsonXML:JSONXML

    JSONXML是一款Java开发的应用程序,其主要功能是帮助用户在JSON与XML之间进行相互转换。这在处理不同系统间的数据交互时非常有用,因为不同的系统可能倾向于使用不同的数据表示格式。 JSON以其简洁、易读的特性受到...

    Pro RESTful APIs Design Build and Integrate with REST JSON XML and JAX-RS 无水印pdf

    Pro RESTful APIs Design Build and Integrate with REST JSON XML and JAX-RS 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn...

    jQuery插件-JSON与XML互转

    支持XML转json; var mySoapXml ='&lt;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" '+ 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" '+ 'xmlns:xsi=...

Global site tag (gtag.js) - Google Analytics