摘要在前后端开发、配置管理、API 通信等领域,我们常常接触到三种主流的数据格式:JSON、XML 和 YAML。虽然它们的目标都是「让数据结构易于存储和传输」,但随着时代发展与技术演进,它们逐渐走上了不同的道路。本文将从历史演变、应用场景出发,结合语法特征,帮你快速理解这三种格式各自的定位与优劣。
YAML ain’t markup languageain’t markup language 度过xml的应该对markup lang都有些畏惧所以,从这个名字就强调了YAML文件阅读友好,语义简洁的特点。
我为什么单独抽时间写一篇关于基础文件格式的科普文?
我认为,对于开发者而言,经验取决于你见过多少文件,写过多少代码,开发过多少项目。 从某个更具象的方面来说,则是你对一个文件格式的理解有多深。
比方说,当开发/阅读一个Verilog项目,你除了知道源文件的文件格式是.v, 你还知道你当前工作的文件,逻辑上遵循什么结构而不只是verilog语法本身,而这就体现工程师软件设计的功底。再比方说, 一个C项目,你看到Makefile,就能想到它的作用. 你拿到一个.xml,你有自己的阅读习惯.
Mark up Language简单问题快答
这个概念哪儿来的?
Web1.0 为排版而生。说到排版,想到:LaTex, HTML,…..实现上,浏览器底层代码对标记语言文件按语法规则解析。
标记语言长什么样?
再怎么说,和源代码文件一样,他是一个文本文件. 只不过和纯粹的.txt相比,有规范的语法.
可以简单的认为,含尖括号语法的就是标记语言。代表:
HTML( Hpyer Text Markup Language )
XML ( eXtensible Markup Language )
瞎编的两个故事1.标记语言和HTML,XML的那段历史
最早的互联网全是静态网页。就是大片的文字放到网上供人们浏览。而没有交互性。标记语言也是在这个行情下诞生的,通过标记的方式,让浏览器渲染出:有排版(居中、左对齐、….)、各种花哨字体、加粗和颜色、在特定位置呈现文字等功能的文字。标记语言什么语法不重要,重点是,浏览器的底层有一个parser为用户呈现完美渲染后的网页
聊聊Markdown:
从标记语言的功能上看,Markdown算是标记语言,而且Markdown file 兼容HTML语法,
从名字上认为Markdown是一种标记语言,也不矛盾。英文上 mark-up 就是用尖括号标签来表注。 mark-down只不过是用更简洁的符号来实现文本排版、文字强调等功能。至于名字的由来,估计是作者调皮了一下。
markdown作者:约翰格鲁伯,perl解析器. (好,上面也说了markdown is a popular markup language….
一、趣味知识:起源与发展
格式
出现时间
主要背景与用途
XML
1998
为了解决 HTML 无法表示结构化数据的问题,适合数据存档、文档结构描述。
JSON
2001
JavaScript 中的轻量数据交换格式,随着 AJAX 崛起而成为 Web 首选。
YAML
2004
Yet Another Markup Language,语法更清晰,主要用于配置文件和 DevOps 场景。
XML:曾经的霸主XML最初是为了扩展 HTML 的表达能力,使得数据能像文档一样有结构、有语义。由于它高度结构化、支持复杂嵌套、具备数据验证机制(如 DTD/XSD),曾一度在 SOAP 协议、早期 Web 服务和企业系统中广泛使用。
JSON:现代 Web 的基石随着 JavaScript 和 AJAX 的流行,JSON(JavaScript Object Notation)凭借轻量、直观、易解析的优势迅速取代 XML,成为前后端通信的标准格式,尤其适用于API数据传输。
YAML:简洁的配置王者YAML 诞生之初就是为了人类友好,语法极简、可读性极强,因此非常适合写配置文件。你可以在 Docker、Kubernetes、GitHub Actions 等 DevOps 工具中频繁看到它的身影。
二、语法要点文件后缀名注释
XML
json无注释
YAML 使用#
json特点:整体用一个大括号包住,Python键值对。 键用string "",值可以是:string, list [] dictionary
serialization