yaml语法

语法

除某些控制字符外,YAML语言接受整个Unicode字符集。所有可接受的字符都可以在YAML文档中使用。YAML文档可以用UTF-8,UTF-16和UTF-32编码。(虽然UTF-32不是强制性的,但如果解析器具有JSON兼容性,则必须使用它。)

  • 空格 缩进用于表示结构; 但是,绝不允许制表符作为缩进。
  • 注释以井号(#)开头,可以从一行开始,一直持续到行尾。必须通过空格字符将注释与其他标记分开。[13] 如果#字符出现在字符串中,则它们是数字符号(#)文字。
  • 列表成员由前导连字符(-)表示,每行一个成员,或用方括号([ ])括起,并用逗号 空格(,)分隔。
  • 关联数组使用冒号 空格(:)以表格key:value表示,每行一个或用花括号({ })括起来并用逗号 空格(,)分隔。
    • 关联数组键可以以问号(?)为前缀,以允许明确地表示自由多字键。
  • 字符串(标量)通常不加引号,但可以用双引号(")或单引号(')括起来。
    • 在双引号内,特殊字符可以用反斜杠()开头的C风格转义序列表示。根据文档,支持的唯一八进制转义是。\``\0
  • 块标量用缩进分隔,并带有可选修饰符以保留(|)或fold(>)换行符。
  • 单个流中的多个文档由三个连字符(---)分隔。
    • 三个句点(...)可选地结束流中的文档。
  • 重复节点最初用&符号(&)表示,然后用星号(*)引用。
  • 节点可以使用感叹号(!!)后跟一个字符串来标记类型或标记,该字符串可以扩展为URI。
  • 流中的YAML文档可以在“指令”之后,该指令由百分号(%)后跟名称和空格分隔的参数组成。YAML 1.1中定义了两个指令:
    • %YAML指令用于标识给定文档中的YAML版本。
    • %TAG指令用作URI前缀的快捷方式。然后可以在节点类型标签中使用这些快捷方式。

YAML要求用作列表分隔符的冒号和逗号后跟空格,以便通常可以表示包含嵌入标点符号(例如5,280http://www.jianshu.com)的标量值,而无需用引号括起来。

YAML中保留了两个额外的sigil字符,以便将来标准化:at符号(@)和重音符号(```)。

你可能感兴趣的:(yaml语法)