程序员科普:JSON、XML、YAML 三种数据格式的由来、应用与对比

程序员科普:JSON、XML、YAML 三种数据格式的由来、应用与对比

摘要在前后端开发、配置管理、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

相关数据