⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 麦叔编程 「小K」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

近日在网上“冲浪”,发现一篇文章标题很醒目:

这...

虽然 JSON 格式很香,在当今应用也很普及,但是说能替代 XML 格式,我觉得有点不太现实。

JSON vs XML

JSON 的优势

  • 易于读写:JSON 使用简单的键值对结构,相比于 XML 的繁琐的标记,更加易于阅读和编写。
  • 较小的文件大小:相比于 XML,JSON 的文件大小通常更小,这意味着更快的传输速度和更少的网络带宽占用。
  • 更好的性能:JSON 的解析和生成速度通常比 XML 更快,这使得它在大数据量和高并发访问的场景下表现更好。
  • 易于使用:JSON 支持几乎所有的编程语言,并且可以通过 JavaScript 内置的 JSON.parse() 和 JSON.stringify() 方法轻松地进行序列化和反序列化操作。
  • 支持复杂数据类型:JSON 支持对象、数组、字符串、数字、布尔和 null 等复杂的数据类型,因此适用于各种类型的应用程序。

XML 的优势

  • 可读性也很强:由于 XML 具有良好的标签结构,因此在阅读和编辑方面具有很高的可读性。它具有丰富的语法和标记,可以更清晰地表示数据结构。

JSON 和 XML 的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式。(萝卜青菜各有所爱)

  • 更加灵活:XML 可以使用 DTD、Schema 等技术进行验证,具有更强的数据校验和数据描述能力。而且 XML 中的数据可以自定义标记,可以根据需要进行灵活地扩展和修改。
  • 支持命名空间:XML 可以使用命名空间机制来避免元素和属性名的冲突。这在一些复杂的数据结构中非常有用。
  • 更加通用:虽然 JSON 是 JavaScript 对象表示法的缩写,但是 XML 不依赖于任何语言或平台,因此可以跨语言和跨平台使用,具有更广泛的应用范围。

同一数据的不同格式表示法

JSON:

{
"product": {
"id": "12345",
"name": "iPhone 13",
"price": 999.00,
"description": "The latest iPhone model from Apple",
"colors": ["Silver", "Gold", "Graphite", "Blue", "Red"],
"specs": {
"display": "6.1-inch Super Retina XDR display",
"processor": "A15 Bionic chip",
"camera": "Dual-camera system with 12MP Ultra Wide and Wide cameras"
}
}
}

XML:

<product>
<id>12345</id>
<name>iPhone 13</name>
<price>999.00</price>
<description>The latest iPhone model from Apple</description>
<colors>
<color>Silver</color>
<color>Gold</color>
<color>Graphite</color>
<color>Blue</color>
<color>Red</color>
</colors>
<specs>
<display>6.1-inch Super Retina XDR display</display>
<processor>A15 Bionic chip</processor>
<camera>Dual-camera system with 12MP Ultra Wide and Wide cameras</camera>
</specs>
</product>

从上面的示例数据中我们可以很容易地发现 JSON 的优点,例如:JSON 比 XML 要简洁不少,这就意味着更快的数据解析、传递和储存。

但 XML 肯定也有自己的两把刷子,要不然早就被 JSON 按在地上摩擦了。

XML 格式无法替代的优点

  • 数据描述能力:相对于 JSON,XML 具有更强的数据描述能力,能够描述更为复杂的数据结构,例如嵌套的表格、树形结构等。同时,XML 还支持 DTD 和 XML Schema 等工具,可以对数据进行严格的验证和约束,保证数据的完整性和正确性。
  • 文档处理能力:XML 本身就是一种标记语言,适合用于描述和处理文档类型的数据。在一些场景下,例如在线编辑器、电子书、电子期刊等,XML 仍然是比较合适的数据格式。

网页转 word 格式文件,就是利用 xml 的这个能力。

  • 命名空间:XML 具有命名空间机制,可以避免元素和属性名称的冲突,保证数据的唯一性和准确性。在一些领域,例如复杂的数据交换协议、标准化的数据格式等,命名空间机制具有很高的实用价值。

例如,我们可以为每个公司定义一个命名空间,例如 "company1" 和 "company2",然后在 XML 文档中使用命名空间前缀来区分元素的名称。例如,公司1的员工信息可以使用 "company1:name" 来表示员工姓名,公司2的员工信息可以使用 "company2:name" 来表示员工姓名。这样就能保证在不同的文档中,元素名称不会冲突。

> <employees xmlns:comp1="http://www.company1.com"
> xmlns:comp2="http://www.company2.com">
> <comp1:employee>
> <comp1:name>John</comp1:name>
> <comp1:age>30</comp1:age>
> </comp1:employee>
> <comp2:employee>
> <comp2:name>Jane</comp2:name>
> <comp2:age>25</comp2:age>
> </comp2:employee>
> </employees>
>

最后

尽管在 Web 开发和移动应用开发,JSON 的特点使得它是一种更为常用的数据格式。

但存在即是合理,XML 同时在特定领域也是无可替代的!

文章目录
  1. 1. JSON vs XML
    1. 1.1. JSON 的优势
    2. 1.2. XML 的优势
    3. 1.3. 同一数据的不同格式表示法
    4. 1.4. XML 格式无法替代的优点
  2. 2. 最后