【问题标题】:How do I convert YAML 1.1 to YAML 1.2?如何将 YAML 1.1 转换为 YAML 1.2?
【发布时间】:2020-08-18 16:26:50
【问题描述】:

我想将 YAML 1.1 文档提供给(很大程度上)符合 YAML 1.2 的解析器。我怎样才能转换我的输入,以便解析器正确解释它?

一个 CLI 工具会很有帮助,或者一些可以变成 CLI 工具的代码。

【问题讨论】:

  • 我记得 YAML 1.2 是 JSON 的超集。因此,我可以使用 YAML 到 JSON 的转换器来预处理我的输入。
  • 根据您的文件,这可能无法满足您的需求。现有转换器可能无法正确实现所有类型。

标签: yaml


【解决方案1】:

这取决于这更多的是关于 YAML 语法还是模式。也许你应该澄清你有什么确切的问题。 我猜这里。

如果是关于语法:我认为没有多少 YAML 处理器可以区分 YAML 1.1 和 1.2 语法。 它们要么较旧并实施 1.1,要么较新并为 1.2 编写。 不同版本之间在语法方面的差异并不大,在现实世界中可能没有那么多用例,这很重要。


如果是关于架构,您可能希望将 yes 之类的内容转换为 true

我最近启动了一个名为 yaml-schema-convert 的工具。你可以在这里找到它: https://github.com/perlpunk/yamlpp-tools

它可以为您进行转换。但是,它并不完整。例如,它不能识别时间戳。

它是用 perl 编写的,由于模块 (YAML::PP) 尚未在许多发行版中,您可能需要从 CPAN 安装它。

在 debian 上这将是:

apt-get install cpanminus
cpanm YAML::PP
cpanm Getopt::Long::Descriptive
cd yamlpp-tools
perl bin/yamlpp-schema-convert < file.yaml

如果有用,我们会很高兴收到反馈。

【讨论】:

    猜你喜欢
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-31
    • 2012-08-13
    • 1970-01-01
    • 2013-09-20
    • 2016-02-16
    相关资源
    最近更新 更多