2KB项目,专业的源码交易网站 帮助 收藏 每日签到

JSON VS XML:JSON真的比XML好很多吗?

  • 时间:2019-01-23 18:43 编辑:2KB 来源:2KB.COM 阅读:344
  • 扫一扫,手机访问
  • 分享
摘要:
JSON XML 英文原文:JSON versus XML: Is JSON Really Better than XML? JSON是一个新的人类可读(  human readable)的数据格式,在过去几年中已变得非常受欢迎,尤其是在web开发中。
JSON和 XML非常的相似。它们都试图通过建立一种简单,人类可读的格式存储数据。直到最近,XML被用于任何类型的需要迅速发送一小部分数据的系统中。比如那些从服务器获取信息的API。在大多数情况下,XML做的很好。那么,为什么还需要JSON?
JSON在设计时是为Web考虑的,所以它在JavaScript中真的很好用。使用类似 eval()的方法(使用 jQuery会很大提升这个方法的表现),你可以很容易使用JSON中的信息填充一个Web页面。
JSON声称相对XML有许多好处,包括:
  • 容易阅读
  • 解析速度更快
  • 占用空间更少
尽管容易阅读是很难衡量的一点,但其它两点是很显然的。 很容易看出,存储相同的信息JSON确实需要更少的空间。快速浏览一下JSON的网站后,你会发现几个比较这两种格式的例子。从页面上可以很容易的看出:描述同样的信息JSON比XML少占用很多的空间。例如:第一个例子(词汇表结构)存储为XML需要502个字符,而存储为JSON只需345字符(大约少占30%的空间)。
对于“解析速度更快”这一点,有点难以测试。对此我写了一个快速测试来看看我能以多快的速度来把一个XML和JSON字符串转化为Java对象。
对于XML解析,我使用Java内置的  SAX解析器。SAX解析器允许遍历XML文件,并把XML值赋给对象中适当的字段。这种方法相对JSON解析是比较繁琐的,但不是没有道理。
JSON的解析,我使用了GSON库,只需用一行代码就可以很容易地在JSON和java对象之间转换,只需要一个这个类的定义就可以了(如Book类,字段名和JSON中的对应)。不过这使得这个类变量和JSON实例绑定到了一起。一旦类的实例名称或JSON字段名有了变化,将会出现问题。
首先,我用相同的数据创建了一个XML和JSON来表示它。下面的XML和JSON文件是使用  Programming Pearls中的信息创建的。 XML版本
<book>
     <type>textbook</type>
     <pages>256</pages>
     <title>Programming Pearls 2nd Edition</title>
     <description>The first edition of Programming Pearls was one of the most influential books I read early in my career...</description>
     <rating>4.5</rating>
     <coverType>paperback</coverType>
     <genre>Computer Science</genre>
     <author>Jon Bentley</author>
     <publisher>Addison-Wesley Professional</publisher>
     <copyright>1999</copyright>
</book>


JSON版本
{
 "book": {
     "type": "textbook",
     "pages": "256",
     "title": "Programming Pearls 2nd Edition",
     "description": "The first edition of Programming Pearls was one of the most influential books I read early in my career...",
     "rating": "4.5",
     "coverType": "paperback",
     "genre": "Computer Science",
     "author": "Jon Bentley",
     "publisher": "Addison-Wesley Professional",
     "copyright": "1999"
     }
 }
 结果  使用上面的XML和JSON文件分别运行解析测试10,000,000次。结果并不令人惊讶,解析和转换JSON成一个Java对象的速度比XML快30%左右。
  • JSON平均运行时间:3.647208974029518E-5
  • XML平均运行时间:5.011537916910817E-5
我得到的结论是:     相对XML,JSON的解析速度提高了30%,占用空间少30%。这些结果似乎和多数开发社区对两种格式的看法一样。换用JSON处理数据在性能上可以有不小的提升,而且还会减少空间的占用。 本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部