YAML 和 JSON 有什么区别,特别考虑以下几点?
我打算在嵌入式系统中使用这两种方法之一来存储配置文件。
从技术上讲,YAML 是 JSON 的超集。这意味着,至少从理论上讲,YAML 解析器可以理解 JSON,但不一定可以理解。
请参阅标题为 “YAML:与 JSON 的关系”的部分中的官方规范。
通常,我喜欢某些关于 YAML 的东西,这些东西在 JSON 中不可用。
在实践中,最后两点都不会对您或我所做的事情有影响,但从长远来看,我认为 YAML 将是更健壮和可行的数据序列化格式。
目前,AJAX 和其他 Web 技术倾向于使用 JSON。目前,YAML 被更多地用于脱机数据处理。例如,默认情况下,它包含在基于 C 的 OpenCV 计算机视觉软件包中,而 JSON 不包含在其中。
您将找到用于 JSON 和 YAML 的 C 库。 YAML 的库往往是较新的,但过去我对它们没有遇到任何麻烦。参见例如Yaml-cpp 。
差异:
{a: &b [*b]}
,它将在某些转换器中无限循环。即使进行了循环检测,“yaml 炸弹” 仍然是可能的(请参阅xml bomb )。观察结果:
这回答的是标题,而不是细节,因为大多数人只是从像我这样的 google 上的搜索结果中读取标题,所以我觉得有必要从网络开发人员的角度进行解释。
JavaScript 如此明显地在网络上占据了主导地位,JavaScript 开发人员更倾向于将 JSON 作为数据格式与流行的 Web API 一起使用,因此在一般意义上进行 Web 编程时,很难争辩使用 YAML 而不是 JSON,因为您很可能会被淘汰在团队环境中。实际上,大多数 Web 程序员甚至都不知道 YAML 的存在,更不用说考虑使用它了。
如果您正在执行任何 Web 编程,则 JSON 是默认的处理方式,因为在使用 JavaScript 时不需要任何翻译步骤,因此在这种情况下,您必须提出一个更好的参数以在 JSON 上使用 YAML。