YAML如何解释特殊字符

时间:2016-05-03 22:47:27

标签: parsing syntax yaml

所以,我试图在YAML中编写插件配置文件,但即使所有似乎正确格式化,我的解析器也会抛出错误。 YAML网站不太有帮助,我唯一能找到任何类型教程的地方是docs.ansible.com/ansible/YAMLSyntax.html上的参差不齐的网站。由于我普遍缺乏YAML语法知识,因此我可能在语法中遗漏了一些愚蠢的东西,每个YAML特殊字符的作用是什么?

供参考,这是我行为不端的YAML文件:

TaskExecutor

2 个答案:

答案 0 :(得分:2)

YAML不需要引用大多数字符串,但如果它们属于某个字符列表,您将需要引用特殊字符。如果您的值包含以下任何特殊字符,请使用引号(例如:,{,},[,] ,,,&,*,#,?,|, - ,<,>,=,!, %,@,)。

答案 1 :(得分:2)

您的YAML语法无效,不是因为字符,而是因为缺少空格:

EnforcedWorlds:|

整行是一个字符串。您希望它是映射键(EnforcedWorlds),后跟块标量(|)的标题。为此,必须在冒号后添加空格:

EnforcedWorlds: |

但我不确定这是否真的是你想要的。它会将所有后续的缩进行解析为文字字符串(保留换行符)。但内容看起来像一个YAML序列,所以也许你想这样写:

EnforcedWorlds:
  - World
  - Nether
  - DIM-1
  - End
  - DIM1

此处,该值将被解析为一系列标量项。

要了解如何解析您的输入,您可以使用一些Web服务:

还有ysh,一个用于测试的交互式YAML shell,使用Perl。