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更新页面信息。
分享到:
相关推荐
在IT行业中,数据交换和存储经常需要在不同的格式之间转换,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)就是两种常见的数据表示格式。Java作为广泛应用的编程语言,提供了丰富的库来...
在本文中,我们将深入探讨Qt库中的JSON和XML处理,主要基于提供的压缩包"Qt-Jsonxml.zip"中的示例代码。这个压缩包包含了作者在Qt开发过程中对这两种数据格式解析的总结,以及可以直接运行的工程文件。我们将讨论...
json xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demojson xml 解析demo
本文将详细讲解C#中JSON和XML的序列化与反序列化工具,以及如何自制一个实用的解析工具。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便机器解析和生成。在...
在IT行业中,JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式。它们各自具有独特的特性和用途,但有时我们需要在两者之间进行转换,以便于不同的系统或库之间...
无论是在日常的开发过程还是与第三方做接口,我们免不了会对Json或Xml进行格式美化,若是以前,我都是打开网页,搜索在线...基于以上种种原因,我开发了一个集成在一起的JsonXml一键美化工具,灰常地银性,灰常地好用。
jQuery xml-to-json插件是一种用于将XML数据转换为JavaScript Object Notation (JSON)格式的工具。在Web开发中,XML和JSON都是常见的数据交换格式,但它们有着不同的应用场景和优势。XML(Extensible Markup ...
- JQuery - jquery.json2xml.js - jquery.xml2json.js 2. XML 字符串转换成 JSON 对象 $.xml2json(str); 3. JSON 对象转换成 XML 字符串 $.json2xml(obj);
在JavaScript(JS)环境中,XML(Extensible Markup Language)与JSON(JavaScript Object Notation)之间的转换是常见的数据处理任务。XML是一种结构化数据格式,常用于数据交换,而JSON则是轻量级的数据交换格式,...
在IT行业中,数据交换和存储经常涉及两种常见的数据序列化格式:JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)。JSON以其简洁、易读性而被广泛用于Web服务,而XML则因其丰富的结构和强大...
还在因为CVAT(Computer Vision ...内有三个功能:Json 转 xml, xml 转 Json, 以及合并两个对应同一批图片的Json打标内容. 不需要Datumaro。 完全满足你的目标识别打标,包括矩形框(rectangle), 多边形(polygon)。
JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在软件开发中扮演着重要的角色。JSON因其简洁、易读的特性,常用于网络API的数据传输,而XML则因为其...
在Android开发中,数据交换和存储经常涉及到XML与JSON这两种格式的转换。XML(Extensible Markup Language)是一种结构化数据格式,常用于Web服务和配置文件;而JSON(JavaScript Object Notation)则是一种轻量级的...
为了更好地处理JSON和XML这两种常见的数据格式,Sublime Text提供了相应的插件支持,使得格式化这两种文件变得更加方便。这篇博文()可能详细介绍了如何在Sublime Text中安装和使用这些插件。 **JSON格式化** ...
本话题主要聚焦于"DataFormater.json"与XML之间的解析工作,以及如何在本地化和单机环境中进行操作。这里我们将深入探讨JSON和XML两种数据交换格式,理解它们的基本结构和特性,以及在实际应用中如何相互转换。 ...
JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在互联网上用于传递和存储结构化数据。JSON以其简洁、易读的特性受到开发者喜爱,而XML则以其丰富的结构...
在Android开发中,数据交换和存储常常涉及到JSON和XML两种格式。JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)都是常见的数据序列化格式,它们用于在网络上传输数据或者存储在本地文件中...
JSONXML是一款Java开发的应用程序,其主要功能是帮助用户在JSON与XML之间进行相互转换。这在处理不同系统间的数据交互时非常有用,因为不同的系统可能倾向于使用不同的数据表示格式。 JSON以其简洁、易读的特性受到...
Pro RESTful APIs Design Build and Integrate with REST JSON XML and JAX-RS 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn...
支持XML转json; var mySoapXml ='<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" '+ 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" '+ 'xmlns:xsi=...