首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >YAML和JSON有什么区别?

YAML和JSON有什么区别?
EN

Stack Overflow用户
提问于 2017-12-19 11:07:30
回答 3查看 0关注 1票数 0

我们什么时候应该使用YAML而不是JSON,反之亦然,考虑以下几点?

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

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

有关:

我应该使用YAML还是JSON来存储我的Perl数据?

EN

回答 3

Stack Overflow用户

发布于 2017-12-19 11:30:14

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

请参阅“YAML:与JSON的关系”一节中的官方规范。

一般来说,我喜欢关于YAML的某些东西,这些东西在JSON中是不可用的。

正如@jdupont指出的那样,YAML在视觉上更容易看。事实上,YAML主页本身是有效的YAML,但是人们很容易阅读。

YAML能够使用“锚”来引用YAML文件中的其他项目。因此它可以处理关系信息,正如在MySQL数据库中可以找到的一样。

YAML 在 YAML文件中嵌入其他序列化格式(如JSON或XML)更为强大。

在实践中,最后两点都不会影响你或我做的事情,但从长远来看,我认为YAML将是一个更强大和可行的数据序列化格式。

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

你会发现JSON和YAML的C库。YAML的图书馆往往比较新,但过去我没有遇到麻烦。参见例如Yaml-cpp。

票数 0
EN

Stack Overflow用户

发布于 2017-12-19 11:30:42

区别:

YAML,取决于你如何使用它,可以比JSON更具可读性

JSON通常速度更快,可能仍然可以与更多系统互操作

可以非常快速地编写一个“足够好”的JSON解析器

重复键,这是潜在的有效的JSON,是绝对无效YAML。

YAML有很多功能,包括评论和关系锚。YAML语法因此相当复杂,而且可能很难理解。

在yaml中写递归结构是可能的{a: &b [*b]},它将在一些转换器中无限循环。即使是循环检测,“yaml炸弹”仍然是可能的(见xml炸弹)。

由于没有引用,因此不可能使用JSON序列化带有对象引用的复杂结构。YAML序列化因此可以更有效率。

结论:

Python程序员通常是YAML的忠实粉丝,因为使用了缩进而不是括号内的语法来表示级别。

许多程序员认为“含义”对缩进的依附是一个糟糕的选择。

如果数据格式将离开应用程序的环境,在UI中解析,或在消息传递层发送,JSON可能是更好的选择。

YAML可以直接用于复杂的任务,如语法定义,通常是比创建新语言更好的选择。

票数 0
EN

Stack Overflow用户

发布于 2021-12-23 15:32:14

我将 YAML 看作是 JSON 的升级,尤其在工程化中应用非常广泛。且 YAML 会是将来前端-后端-运维的标准配置。 具体可以看这篇文章:https://juejin.cn/post/7040849488998563848

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档