[关闭]
@Dale-Lin 2020-11-01T15:13:11.000000Z 字数 1234 阅读 632

YAML语法

YAML


Playground:YAML - JavaScript parser

语法特点

数据结构

mapping

对象用冒号结构表示一对键值对:

  1. animal: pet
  2. tree: !!map
  3. willow: true
  4. cypress: true
  1. {
  2. animal: 'pet',
  3. tree: { willow: true, cypress: true }
  4. }

sequence

一组开头是连词线的行:

  1. color: !!seq
  2. - blue
  3. - yellow
  4. - pink
  1. {
  2. color: ['blue', 'yellow', 'pink']
  3. }

scalars

纯量指单个的、不可再分的值:

  1. string: "12"
  2. number: 12.11
  3. infinity: .inf
  4. negativeInfinity: -.inf
  5. octal: 014
  6. hexadecimal: 0xc
  7. boolean: true
  8. null: ~
  9. undefined: !!js/undefined ~
  10. time: 2020-10-29 00:00:00 +8
  1. {
  2. string: "12",
  3. number: 12.11,
  4. infinity: Infinity,
  5. negativeInfinity: -Infinity,
  6. octal: 12,
  7. hexadecimal: 12,
  8. boolean: true,
  9. null: null,
  10. undefined: undefined,
  11. time: Thu Oct 29 2020 00:00:00 GMT+0800 (中国标准时间)
  12. }

强制转换

!! 表示强制类型转换,常见的有:

  1. pairs: !!pairs
  2. - foo: ofoo
  3. - bar: obar
  1. {
  2. pairs: [
  3. ["foo", "ofoo"],
  4. ["bar", "obar"]
  5. ]
  6. }
  1. set: !!set
  2. ? foo
  3. ? bar
  1. {
  2. foo: null,
  3. bar: null
  4. }

变量引用

& 作为一个锚点引用变量,* 可以引用,<< 表示合并数据(如果有同名,后面的声明会覆盖前面的):

  1. merge: &merge
  2. - &Center { x: 1, y: 2 }
  3. - &Left { x: 0, y: 3 }
  4. foo: *merge
  5. bar:
  6. <<: *Left
  7. y: 10
  1. {
  2. merge: [
  3. { x: 1, y: 2 },
  4. { x: 0, y: 3 }
  5. ],
  6. foo: [
  7. { x: 1, y: 2 },
  8. { x: 0, y: 3 }
  9. ],
  10. bar: { x: 0, y: 10 }
  11. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注