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

转载 2013年12月02日 10:45:24
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版本
01 <book>
02      <type>textbook</type>
03      <pages>256</pages>
04      <title>Programming Pearls 2nd Edition</title>
05      <description>The first edition of Programming Pearls was one of the most influential books I read early in my career...</description>
06      <rating>4.5</rating>
07      <coverType>paperback</coverType>
08      <genre>Computer Science</genre>
09      <author>Jon Bentley</author>
10      <publisher>Addison-Wesley Professional</publisher>
11      <copyright>1999</copyright>
12 </book>

JSON版本
01 {
02  "book": {
03      "type""textbook",
04      "pages""256",
05      "title""Programming Pearls 2nd Edition",
06      "description""The first edition of Programming Pearls was one of the most influential books I read early in my career...",
07      "rating""4.5",
08      "coverType""paperback",
09      "genre""Computer Science",
10      "author""Jon Bentley",
11      "publisher""Addison-Wesley Professional",
12      "copyright""1999"
13      }
14  }
 结果

 使用上面的XML和JSON文件分别运行解析测试10,000,000次。结果并不令人惊讶,解析和转换JSON成一个Java对象的速度比XML快30%左右。
  • JSON平均运行时间:3.647208974029518E-5
  • XML平均运行时间:5.011537916910817E-5
我得到的结论是:
    相对XML,JSON的解析速度提高了30%,占用空间少30%。这些结果似乎和多数开发社区对两种格式的看法一样。换用JSON处理数据在性能上可以有不小的提升,而且还会减少空间的占用。

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

SON是一个新的人类可读( human readable)的数据格式,在过去几年中已变得非常受欢迎,尤其是在web开发中。 JSON和 XML非常的相似。它们都试图通过建立一种简单,...

Android开发——Protocol Buffer的使用(比XML、Json快很多)

0.前言最近的项目里有用到Protocol Buffer,Protocol Buffer是Google公司开发的一种数据描述语言,类似于XML,是一种结构化数据的数据存储格式,可用于数据传输量较大的即...

数据格式之战:JSON vs XML

在比较JSON和XML之前,我们先来上一堂关于数据格式的简要历史(更准确的说,是关于XML的始祖): 早在1970年,IBM开发了一种叫Generalized Markup Language的标...

XML vs JSON 谁是数据交换格式之王?

XMLXML 可扩展标记语言(EXtensible Markup Language),长久以来作为配置和与网络上的主流数据交换格式。XML 被设计为传输和存储数据,其焦点是数据的内容。没有任何行为的 ...

XML VS JSON

目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生;相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之...

XML VS. JSON

JSON和XML的比较   ◆可读性    JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式,很难分出胜负。         ◆可扩展性    XML天生有很好...

XML vs JSON 浅析

XML vs JSON 浅析结构对比

json格式省市二级联动xml文件

  • 2017年12月16日 16:14
  • 4KB
  • 下载

Android中xml转json

  • 2017年12月04日 10:43
  • 1.77MB
  • 下载

SpringMVC关于json、xml自动转换的原理研究[附带源码分析]

目录 前言现象源码分析实例讲解关于配置总结参考资料 前言 SpringMVC是目前主流的Web MVC框架之一。  如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cn...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSON VS XML:JSON真的比XML好很多吗?
举报原因:
原因补充:

(最多只允许输入30个字)