何时使用YAML而不是JSON

idfiyjo8  于 2023-06-25  发布在  其他
关注(0)|答案(2)|浏览(123)

YAML似乎比JSON格式的对象更可读,除了可读性之外,PyAML与JSON相比有哪些优点或缺点?我们应该如何在两者之间做出决定,请注意,我不是在问两者之间的区别,而是关于为什么和何时使用一个而不是另一个的建议?

ssgvzors

ssgvzors1#

JSON比YAML更正式。恕我直言:
YAML更适合快速创建和理解软件模块的简单配置文件;
JSON更适合快速实现和实现软件模块之间的简单数据传输。

imzjd6km

imzjd6km2#

YAML和JSON之间有一个或两个“大的”差异,可以(应该)迅速说明,这些差异在全面的答案中缺失(或不突出),就像问题评论中提到的那样。

YAML定义缩进

虽然YAML does not permit TAB characters for indentation,它仍然是一个缩进定义的格式。如果您认为您的文件可能会被错误处理和挤压,从白色的Angular 来看(例如,从网页上粘贴的副本),你可能更喜欢JSON。

JSON不支持数字键

你可以指定一个只包含数字的JSON键,但键仍然是一个字符串,并且如果要在你的语言中转换成实际的int,则需要一个约定或格式规范。如果你需要真正的数字键,你可能更喜欢YAML。

YAML是JSON的超集

我认为我说所有有效的JSON都是有效的YAML是正确的,即使是在没有缩进定义的JSON部分中接受TAB字符。如果您能够负担得起使用YAML解析器,那么如果您想要这个限制,您也可以使用JSON。

JSON更普及

即使是现在,我认为这是相当无可争议的说,你几乎可以找到JSON支持,所以选择JSON将最大化你的兼容性。

你想过TOML吗

所以TOML是一个很好的候选人:

  • 没有那么多的兼容性,支持不像JSON甚至YAML那样无所不在
  • 没有定义缩进,从这个Angular 看,和JSON一样健壮
  • 我可以接受数字键,但像JSON一样,它们仍然会被解析为字符串
  • 基于行的格式紧凑、可读性强、不混淆

如果你可以失去通用支持,这是YAML的一个很好的替代品,提供了一些漂亮的紧凑哈希表定义替代品,具有像JSON这样的非缩进格式的健壮性,但遗憾的是,仍然没有真正的数字键。

XML

对不起,Minas,我今天不会说任何关于XML的好话。

相关问题