一尘不染

YAML和JSON有什么区别?

json

YAML和JSON有什么区别,特别考虑以下几点?

  • 性能(编码/解码时间)
  • 内存消耗
  • 表达清晰
  • 库的可用性,易用性(我更喜欢C)

我打算在嵌入式系统中使用这两个之一来存储配置文件。


阅读 474

收藏
2020-07-27

共1个答案

一尘不染

从技术上讲,YAML是JSON的超集。这意味着,至少从理论上讲,YAML解析器可以理解JSON,但不一定可以理解。

请参阅标题为
YAML:与JSON的关系”
的部分中的官方规范。

通常,我喜欢某些关于YAML的东西,这些东西在JSON中不可用。

  • 正如@jdupont所指出的,YAML在视觉上更易于查看。实际上,YAML主页本身就是有效的YAML,但是对于人类而言,它很容易阅读。
  • YAML能够使用“锚”引用YAML文件中的其他项目。因此,它可以处理在MySQL数据库中可能发现的关系信息。
  • YAML是有关嵌入其他序列化格式诸如JSON或XML更健壮的 YAML文件。

在实践中,最后两点都不会对您或我所做的事情有影响,但从长远来看,我认为YAML将是更健壮和可行的数据序列化格式。

目前,AJAX和其他Web技术倾向于使用JSON。目前,YAML被更多地用于脱机数据处理。例如,默认情况下,它包含在基于C的OpenCV计算机视觉软件包中,而JSON不包含在其中。

您会发现JSON和YAML的C库。YAML的库往往是较新的,但是过去我对它们没有遇到任何麻烦。参见例如Yaml-
cpp

2020-07-27