`
dennisbing
  • 浏览: 160887 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSON基础与XML比较

阅读更多
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的xml和json相互转换工具类,亲测直接用

    在Java开发中,XML(可扩展标记语言)和JSON...在`XmlToJson.java`这个工具类中,我们展示了如何利用Jackson库进行XML与JSON之间的转换。这只是一个基础示例,实际项目中可能需要进行更复杂的错误处理和数据验证。

    jquery.json2xml.js和jquery.xml2json.js

    在jQuery的基础上,`jquery.json2xml.js` 和 `jquery.xml2json.js` 这两个脚本提供了方便的方法来在JSON和XML之间进行转换,从而让开发者无需深入了解这两种格式的复杂性,就能轻松地在它们之间进行数据互换。...

    xml转json包与教程

    通过这个压缩包提供的资源,开发者可以学习到XML与JSON转换的基本方法,并能根据“使用方法.txt”的教程快速上手。在实际开发中,结合具体项目需求,灵活应用这些知识,可以提高工作效率并优化数据处理流程。

    JSON-XML相关jar包

    1. JSON基础知识: - JSON是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。 - JSON由两部分组成:数据容器...

    JS xml转json

    #### 一、XML与JSON简介 - **XML(Extensible Markup Language)**: 可扩展标记语言,是一种用于标记数据的标记语言,主要用于存储和传输数据。XML具有良好的结构化特性,使得它非常适合用来表示复杂的数据结构。 -...

    Delphi Json/XML 解析类

    在Delphi编程环境中,处理JSON和XML数据是常见的任务,特别是在与Web服务交互或存储配置信息时。本文将深入探讨Delphi中用于解析JSON和XML的类,以及如何使用它们。 首先,我们来看JSON(JavaScript Object ...

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    1. JSON基础:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但与编程语言无关。JSON数据结构主要包括对象(键值对的集合,用花括号{}包围)和数组...

    IOS XML类型转JSON类型

    2. 建立JSON结构:在解析XML的过程中,我们需要构建一个与XML结构对应的JSON对象。例如,XML中的元素可以映射到JSON对象,属性可以作为键值对,子元素可以转换为数组或嵌套对象。 3. 序列化到JSON:有了JSON对象后,...

    JSON基础教程.

    ### JSON基础教程详解 #### 一、JSON简介与优势 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。相较于XML,JSON的数据格式更为简洁,这使得它在...

    notepad++json+xml格式化

    在这个“notepad++json+xml格式化”的主题中,我们将重点讨论如何在Notepad++中安装和使用XML和JSON的格式化插件,以及这些格式化工具对开发工作的重要性。 首先,让我们来看看如何在Notepad++中安装XML和JSON的...

    JSON和XML的比较

    JSON 和 XML 的比较 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于 JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON 采用完全独立于语言的文本格式,但是...

    IOS XML转JSON数据

    - 注意,不是所有的字典都能转换为JSON,JSON只支持基础数据类型(如字符串、数字、布尔值、数组、字典)和null。 4. **错误处理** - 在解析XML和转换JSON的过程中,可能会遇到错误,例如格式不正确、内存不足等...

    转载 xStream完美转换XML、JSON

    标题 "xStream完美转换XML、JSON" 指的是使用xStream库在Java中进行XML与JSON数据格式之间的转换。xStream是一个强大的库,它提供了一种简单的方式来序列化和反序列化Java对象到XML,反之亦然。在这个场景中,它同样...

    Notepad++(8.5.3)安装文件及相应的xml/json插件

    通过这些插件,Notepad++不仅能够作为基础的文本编辑器,还能成为强大的XML和JSON开发工具,为开发者提供便利。无论是查看、编辑还是调试XML和JSON数据,Notepad++配合这些插件都能大大提高工作效率。因此,对于经常...

    XML转换为JSON的所有jar包

    它可以直接解析XML并创建相应的对象模型,为XML到JSON转换提供基础。 3. **commons-lang-2.5.jar**:Apache Commons Lang是Java语言工具包,包含大量实用方法,可以增强Java的标准类库。在XML和JSON转换中,可能会...

    XML与JSON文件代码例子

    在实际应用中,你可能还需要处理更复杂的XML和JSON结构,但以上代码提供了一个基础的起点。 总结来说,XML和JSON都是数据表示的重要工具。XML以其结构化和自描述性在数据交换和存储中占据一席之地,而JSON则因为其...

    Android使用XML和JSON两种数据格式通过网络通信实现资讯客户端案例

    本案例主要探讨了如何利用XML和JSON这两种数据格式进行网络通信,从而实现资讯的获取和展示。接下来,我们将深入讨论这两个数据格式以及它们在Android中的应用。 XML(eXtensible Markup Language)是一种结构化...

    xmlhttp+asp+javascript+xml+json

    在压缩包"xmlhttp+asp+javascript+xml+json"中,可能包含了示例代码或者教程,展示了如何在ASP环境中使用XMLHTTP对象与服务器通信,JavaScript处理JSON或XML响应,并在客户端进行数据操作。如果你正面临一个需要使用...

    xml2json.zip

    标题“xml2json.zip”揭示了这是一个包含将XML文件转换为JSON格式的工具或...同时,理解XML和JSON的语法基础,以及Python的XML和JSON处理库(如`xml.etree.ElementTree`和`json`模块),对于充分利用这个工具至关重要。

Global site tag (gtag.js) - Google Analytics