`

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

    博客分类:
  • 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版本
1
2
3
4
5
6
7
8
9
10
11
12
<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版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
 "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处理数据在性能上可以有不小的提升,而且还会减少空间的占用。
 
 
转自: https://www.oschina.net/question/100267_61459
 

 

分享到:
评论

相关推荐

    json和xml互转

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在互联网上用于传递和存储结构化数据。JSON以其简洁、易读的特性受到开发者喜爱,而XML则以其丰富的结构...

    js下xml转json和json转xml

    4. **处理数组**:当遇到JSON数组时,需要创建多个具有相同标签名的XML元素。 5. **构建XML结构**:根据JSON结构生成XML标签,添加属性,插入文本内容,并处理嵌套的对象和数组。 6. **返回XML字符串**:最后,...

    Xml2Json and Json2Xml

    3. 序列化XML:递归结束后,生成的XML Document对象可以使用`XMLSerializer`序列化为XML字符串。 在提供的文件中,`xml2json.js`和`json2xml.js`可能包含了这些转换功能的具体实现。`xmljson_test.htm`可能是一个...

    jquery.json2xml.js和jquery.xml2json.js

    总之,`jquery.json2xml.js` 和 `jquery.xml2json.js` 是jQuery的两个强大工具,它们使开发者能够轻松地在JSON和XML之间进行转换,从而更好地适应不同的数据处理需求。在实际项目中,它们可以极大地提高开发效率,...

    C++结构体和json/xml之间互相转换

    在C++中,处理JSON的库有很多,如nlohmann/json,而处理XML的库有pugixml、tinyxml等。 在C++中将结构体转换为JSON或XML,我们需要定义一个映射规则,将结构体的每个成员对应到JSON或XML的键值。这通常涉及到反射...

    01.JsonToXml.zip

    这个压缩包"01.JsonToXml"很可能包含了实现这些功能的示例代码或组件,帮助开发者快速集成到他们的项目中。为了充分利用这些资源,开发者需要理解Delphi的类库以及JSON和XML的基本概念,以便正确地使用和扩展提供的...

    json转xml插件工具

    - JQuery - jquery.json2xml.js - jquery.xml2json.js 2. XML 字符串转换成 JSON 对象 $.xml2json(str); 3. JSON 对象转换成 XML 字符串 $.json2xml(obj);

    JS xml转json

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

    JSON-XML相关jar包

    - JSON转XML: ```java import com.fasterxml.jackson.databind.ObjectMapper; // ... ObjectMapper mapper = new ObjectMapper(); String jsonString = "{\"name\":\"John\", \"age\":30}"; String xml...

    json和xml比较

    但是,JSON 略比 XML 简单,要写好 XML 最好还是借助 XML 编辑器,标签的嵌套和配对手动输入来说容易出错。 编码难度 从编码难度而言,JSON 略比 XML 简单。JSON 的语法规则简单,易于理解和实现,而 XML 的语法...

    Json和Xml离线格式化工具

    在IT行业中,数据交换和存储经常涉及两种常见的数据序列化格式:JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)。JSON以其简洁、易读性而被广泛用于Web服务,而XML则因其丰富的结构和强大...

    Editplus,xml,json格式化插件

    3、配置xml: 【tools】--&gt; [Configure user tools] Menu txt:xmlFormat Command :D:\Program Files\EditPlus\xml.exe (Editplus安装目录为D:\Program Files\EditPlus) Argument:fo Action:Run as Text fiter...

    java的xml和json相互转换工具类,亲测直接用

    System.out.println("JSON from XML: " + jsonFromXml); String xmlFromJson = XmlToJson.jsonToXml(jsonFromXml); System.out.println("XML from JSON: " + xmlFromJson); } catch (Exception e) { e....

    java json xml转换

    1. JSON转XML: - 使用Jackson库:Jackson提供了JsonNode接口,可以将JSON对象转换为树模型,然后通过`com.fasterxml.jackson.databind.node.ObjectNode`的`toString()`方法将其转换为XML。首先需要添加Jackson-...

    json2xml.zip

    3. 序列化XML:将构建的XML树转换回XML字符串。 在"json2xml.zip"的压缩包中,可能包含一个或多个文件,如Python脚本、Java类、JavaScript模块或其他编程语言的实现。这些文件可能提供了一个API,允许用户传入JSON...

    用JSON替换XML

    对于想要学习或使用JSON的开发者来说,网络上有很多丰富的资源可供参考。例如,json.org提供了详细的规范和示例,还有各种编程语言的库和工具,帮助开发者更轻松地处理JSON数据。 ### 结论 总的来说,JSON以其简洁...

    VB解析Json转换为Xml

    4. 最后,可以输出或保存生成的Xml: ```vb Console.WriteLine(xDoc.ToString()) ' 在控制台打印Xml xDoc.Save("output.xml") ' 保存到文件 ``` 在实际项目中,Json数据可能更为复杂,包含嵌套的对象和数组。...

    json自动转换成xml的json包

    JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据交换格式,它们在互联网上用于传递和存储结构化数据。JSON以其简洁和易于阅读的特性,通常被用作轻量级的数据交换格式...

    json与xml使用

    比较JSON和XML: 1. **易读性**:两者都可读,但JSON通常被认为更直观,尤其是对于简单的键值对。 2. **简洁性**:JSON通常比XML更紧凑,节省传输带宽。 3. **解析速度**:JSON解析通常比XML更快,因为它不需要处理...

    C#写的Json与Xml互转支持.net framework2.0以上组件Newtonsoft.Json.dll

    在.NET开发环境中,数据交换和序列化经常是关键任务,其中JSON和XML是最常见的两种格式。本文将深入探讨如何在C#中使用Newtonsoft.Json.dll库进行JSON与XML之间的转换,特别关注对.NET Framework 2.0及以上版本的...

Global site tag (gtag.js) - Google Analytics