上研究生时对XML做了相当的学习研究,可惜后来并没有用到,工作后使用ExtJS才开始接触Json,发现Json也是一种不错的数据格式。Json与XML都是基于文本的格式,都可以用来传输和保存数据,不过个人以为,用来传输Json较好,如果做配置文件XML更胜一筹。
XML的全称是Extensible Markup Language,即可扩展标记语言,它与HTML一样,是SGML(Standard Generalized Markup Language,标准通用标记语言)一种,非常易于阅读和编写。
Json的全称是JavaScript Object Notation,是一种易于人阅读和编写,同时也易于机器解析与生成的轻量级数据交换格式。它是JavaScript的一个子集,由
文档
RFC4627
定义。
虽然Json与XML都是基于文本易于阅读和编写的数据交换格式,但Json要简单的多。Json没有XML那么多的概念与规则,所以Json的解析与生成非常容易,编写一个Json库轻而易举(我自己就写了一个),如果要自己写一个XML库,问题就没有那么简单了。也正是XML没有Json那么简单,所以XML功能上要强大的多。
比较起来,Json与XML的差异主要体现在以下几点:
-
注释
:XML可以在文档中加入注释,已增加可读性,但Json没有这方面的便利,RFC4627中根本就没有定义如何注释Json数据。
-
有效性验证
:XML可以使用DTD或Schema来保证其内容符合特定的逻辑规则,但Json没有这方面的便利。
-
查询支持
:可以使用XPath与XQuery查询XML数据内特定的部分,Json同样没有这方面的便利。
-
友好的展示数据
:借助XLT或CSS技术,可以像HTML一样展示XML数据,这点Json也做不到。
从功能上讲,XML非常强大,这使得XML的解析变得非常复杂,库代码也异常庞大。解析XML要处理元素与属性,区分注释,验证有效性,XML库至少还要再增加上查询支持,所以XML库都异常庞大,编写起来非常困难。
相对而言,Json不提供注释、有效性验证与查询支持,也不管数据的展示,功能上非常单薄,但这也使得解析Json非常容易,编写Json库也花费不了多少力气。
由于Json简单,库代码体积也非常小,所以非常适合传输数据。而XML提供了注释功能与有效性验证以及查询技术,更适合作为配置文件的格式。
分享到:
相关推荐
json与xml互相转换工具类
JSON与XML之间互相转换开发jar包
JSONUtils 实现了json结构数据的生成与解析,json与 xml之间相互转换
android json与xml解析 例子 demo 包含Json和xml解析 其中json包括解析带数组的和不带数组的; xml包括DOM解析和SAX解析
json对象,json描述方式,json与xml,json-rpc
json与xml的区别比 较
Testjackson staxon json与xml 转换 源码 ,支持转换成数组,和属性,工程可运行,带源码
自己写的json与xml互转工具 简单实用
是我从别的地方获取的 具体介绍了安卓下面的 xml方式和json方式传递数据
支持XML转json; var mySoapXml ='<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" '+ 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" '+ 'xmlns:xsi=...
json与xml格式转换插件
jquery.json2xml.js&&jquery.xml2json.js在jQuery的基础上实现json与xml的相互转换
json与xml相互互转无jar包纯java实现,也可使用lib的jar实现功能。
json与XML比较[借鉴].pdf
文章通过对JSON和XML进行比对,分析两者之间的差异优劣,各自凸显优势
- JQuery - jquery.json2xml.js - jquery.xml2json.js 2. XML 字符串转换成 JSON 对象 $.xml2json(str); 3. JSON 对象转换成 XML 字符串 $.json2xml(obj);
C# Json转Xml 或 Xml转Json 使用详细说明及资源 支持框架2.0以上 控件Newtonsoft.Json.dll内容详细包含源代码示例
利用 jkl-dumper.js和ObjTree.js实现json与xml格式互转所用插件,这个插件亲测试有效。效果展示:https://json.ma。
java对象与json报文、xml报文的转换,json与xml报文的转换,适合新手理解报文转换以及格式
js下xml转json和json转xml