全栈工程师修炼指南
熊燚(四火)
Oracle 首席软件工程师
32206 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
全栈回顾 (1讲)
加餐 (1讲)
全栈工程师修炼指南
15
15
1.0x
00:00/00:00
登录|注册

39 | XML、JSON、YAML比较

XML和JSON都需要转义特殊字符,XML还支持使用CDATA表示内容
XML使用XPath,JSON使用JSONPath,但由于JSON的亲和力,JSONPath在实际中不那么重要
JSON和JavaScript对象之间的互相转化更为方便
JSON更为简洁,支持直接表示数组和基本数据类型,但缺乏严格的数据类型定义
XML的结构要求更为严谨,需要明确说明每个内容数据的结构,支持XSD进行校验
文章总结了XML和JSON的特性,包括风格、schema、路径表达式等,并介绍了YAML的可读性
YAML在数据类型的明确性上做了一定程度的牺牲
YAML具备良好的可读性和层次结构表达能力
特殊字符
路径表达式
JavaScript一家亲
简洁还是严谨
其他数据交换语言成员
YAML与JSON的区别和联系
JSONPath
XPath
DTD
总结思考
审视一番YAML
XML和JSON的比较
扩展阅读
文章比较了XML、JSON和YAML三种数据交换语言的特点

该思维导图由 AI 生成,仅供参考

你好,我是四火。
XML 和 JSON,是程序员几乎每天都会打交道的数据、特别是配置数据的承载格式。我想你心里应该有一个大致的印象,它们二者各有什么优劣,但是也许没有系统地比较过。那今天我们就把它们放到一起,丁是丁卯是卯地分析分析,对比一下它们各自的特点。另外,这些年来,对于配置,特别是复杂 DSL 的配置,YAML 也逐渐流行开来,因此我们也把它拿过来剖析一番。

XML 和 JSON 的比较

XML 全称叫做 Extensible Markup Language,就像 HTML、CSS 一样,是一种标记语言(标记语言不属于传统意义上的编程语言),且是一种具备结构化特征的数据交换语言;类似地,JSON,也就是 JavaScript Object Notation,被称作 JavaScript 对象表示法,非结构化,更轻量,但归根结底也是一种数据交换语言。因此,二者具备相当程度的相似性,在实际应用中,往往也可以比较和替代。

1. 简洁还是严谨

[第 04 讲] 的时候,我介绍了 REST 和 SOAP 这样一个简洁、一个严谨的俩兄弟。而在本讲中,JSON 和 XML 也在一定程度上同样满足这样的比较关系,JSON 往往是更为简洁、快速的那一个,而 XML 则更为严谨、周全。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

XML、JSON和YAML是常见的数据交换和配置格式,它们各自具有独特的特点和适用场景。XML作为一种标记语言,结构严谨,需要定义每个数据的结构,支持XSD进行严格校验。JSON则更为简洁、快速,与JavaScript对象亲和力强,支持路径表达式JSONPath。而YAML则以其优秀的可读性和缩进特点逐渐流行,适用于复杂DSL配置。XML在数据校验的支持和数据类型表达能力方面具有优势,而JSON则在报文大小和程序处理性能上表现出色。另外,YAML以其清晰的层次结构表达和可读性脱颖而出。总的来说,XML严谨,JSON简洁快速,YAML适用于复杂配置,读者可以根据实际需求选择合适的数据交换格式。文章通过比较XML和JSON的简洁与严谨、JavaScript对象与JSON亲和力、路径表达式等方面,展现了它们各自的特点,帮助读者更全面地了解这些数据交换语言。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全栈工程师修炼指南》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • leslie
    从操作系统方面而言其实代表了两类操作系统数据库:windows和linux;sql server2005开始就有不少数据用了xml格式,JSON的典型代表是mongodb。 xml的强结构化,可读性非常好;曾经主攻sql server时大量的开发直接生成xml,其文档的可读性和强结构化让代码做优化和修改时非常方便,当今主流的mybatis框架用的同样是xml格式。老师在说javascripe时其实漏了一个东西BSON,JSON同时代的产物,只是现在提及的人较少而已。 XML和JSON其实是两种类型的典型代表,各有千秋,合适的场景各取所长合理搭配才是最佳方案。

    作者回复: 👍 BSON 是众多数据交换格式中的一种,现在使用并不多,而且是二进制的。

    2019-12-09
    1
  • 梁鑫辉
    yaml相对于json来说,在作为配置文件的场景下,有个优势是:可以添加注释
    2019-12-19
    8
  • 許敲敲
    JSON的http报文大小更小,并且文件格式对于JS,Python来讲更容易操作,所以在web中更流行吧。
    2019-12-09
    3
  • 靠人品去赢
    JSON前段后台通讯用比较不错,看了一下文中关于JSON和YAML的比较,总体感觉就是YAML要求更高,不管是目的,YAML在保持可读性的同时还要支持连续的基本数据结构,像什么key的唯一性YAML是必须的,JSON就可以乱搞。 但是工作中,感觉YAML对手更应该是XML,还有一个“free style”选手,properties配置文件。
    2019-12-09
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部