现在,几乎每个人都熟悉JSON的标准格式。相反,使用Docker的人肯定熟悉YAML。简单地说,Docker是一个工具包,它允许开发人员通过单一的API或命令来运行、构建、部署、修改以及停止软件包。YAML是一种新的但很流行的语言,用于序列化数据。首先,我们应该认识到什么是数据序列化。数据序列化是将数据对象转化为字节流的最常见方式,用于在设备上存储、传输和分发数据。然而,它们有类似的目标,将结构和数据对象存储到文件中,但有不同的工作方式。
在这篇文章中,我们首先了解JSON和YAML的特点,然后深入比较它们,完全理解它们的优点,再简单讨论哪一个更好。
YAML
YAML是Yet Another Markup Language的缩写,用于定义配置。它是轻量级的,以人类可读的格式表示数据。如果你想解析JSON,那么你必须使用YAML解析器,因为JSON是YAML的一个子集。此外,JSON可以被转换为YAML。YAML在其配置文件中也有JSON。YAML不仅允许用户定义数据类型,而且还允许明确的数据类型化。".YML"或".YAML"是YAML的扩展。 以下是其官方文档的链接 yaml.org/。 YAML与JSON不同,它使用类似Python的缩进方式来表示数据的层次。在YAML中,列表以连字符开始,键对可以用冒号分开。三个破折号("-")表示一个文档的开始,而三个点("...")表示一个文档的结束。
例子
下面是一个显示YAML格式的例子。这个例子包含了关于各种汽车的信息。
---
List of Cars:
- car registration number: 011
car name: Civic
owner of car: Zaim Khan
model number: xyz
price: 20 lacs
color: black
- car registration number: 012
car name: Mehran
owner of car: Sara Khan
model number: xyzasd21
price: 10 lacs
color: white
- car registration number: 013
car name: Cultus
owner of car: Taimur Ali
model number: xy12z
price: 15 lacs
color: grey
...
JSON
首先,我们快速定义什么是JSON。JSON取决于JavaScript语言。JSON可以与任何编程语言一起使用,因为它不是独立于语言的,但大多与JavaScript一起使用。它以一种标准格式存储数据。在JSON中,记录可以用逗号分开,而字符串和字段则用双引号("")括起来。
例子
下面是一个显示JSON格式的例子。这个例子存储与汽车有关的信息。
{
"List of Cars" : [
{
"car registration number":"011",
"car name":"Civic",
"owner of car":"Zaim Khan",
"model number":"xyz",
"price":"20 lacs",
"color":"black"
},
{
"car registration number":"012",
"car name":"Mehran",
"owner of car":"Sara Khan",
"model number":"xyzasd21",
"price":"10 lacs",
"color":"white"
},
{
"car registration number":"013",
"car name":"Cultus",
"owner of car":"Taimur Ali",
"model number":"xy12z",
"price":"15 lacs",
"color":"grey"
}
]
}
YAML VS JSON:
YAML和JSON的比较并不像你想象的那样简单。如果我们谈论的是配置文件中数据的可读性,那么JSON和YAML都可以互换使用。因此,在可读性方面的比较是相当困难的。在配置文件中,JSON可能和YAML一样能够表达相同的数据类型。虽然YAML是一组键/值对,但其中并没有对象。
此外,JSON是一种成熟的数据结构,广泛用于存储JavaScript等编程语言中的数据。另一方面,YAML不存在于配置文件之外。
在序列化格式方面,JSON是最适合的,而YAML作为一种配置则更好。JSON有一种序列化格式,它源于JavaScript对象
在JSON中,字符串可以使用双引号,而YAML同时支持单引号和双引号。JSON中不允许有注释,而YAML中的注释是通过哈希或数字符号表示的。
总结
要决定是JSON 好还是YAML好是相当困难的。因此,我决定从不同的方面来比较它们。当你谈及可读性时,YAML要好得多,但在尺寸方面,JSON就占了优势。相对来说,JSON的速度比YAML快。然而,如果数据配置较小,YAML会更好,因为它的界面更友好。
JSON具有对六种不同的数据类型进行编码的功能,如对象、数组、字符串、数字、空和布尔值。JSON对于机器来说更容易解析,与YAML相比,它相当灵活,YAML允许对python数据进行编码,但在解码时存在漏洞。这就是为什么YAML太难解析了。