YAML vs JSON 哪个更好?

1,297 阅读4分钟

现在,几乎每个人都熟悉JSON的标准格式。相反,使用Docker的人肯定熟悉YAML。简单地说,Docker是一个工具包,它允许开发人员通过单一的API或命令来运行、构建、部署、修改以及停止软件包。YAML是一种新的但很流行的语言,用于序列化数据。首先,我们应该认识到什么是数据序列化。数据序列化是将数据对象转化为字节流的最常见方式,用于在设备上存储、传输和分发数据。然而,它们有类似的目标,将结构和数据对象存储到文件中,但有不同的工作方式。

在这篇文章中,我们首先了解JSON和YAML的特点,然后深入比较它们,完全理解它们的优点,再简单讨论哪一个更好。

YAML

YAML是Yet Another Markup Language的缩写,用于定义配置。它是轻量级的,以人类可读的格式表示数据。如果你想解析JSON,那么你必须使用YAML解析器,因为JSONYAML的一个子集。此外,JSON可以被转换为YAMLYAML在其配置文件中也有JSONYAML不仅允许用户定义数据类型,而且还允许明确的数据类型化。".YML"或".YAML"是YAML的扩展。 以下是其官方文档的链接 yaml.org/。 YAMLJSON不同,它使用类似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

首先,我们快速定义什么是JSONJSON取决于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的比较并不像你想象的那样简单。如果我们谈论的是配置文件中数据的可读性,那么JSONYAML都可以互换使用。因此,在可读性方面的比较是相当困难的。在配置文件中,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太难解析了。