YAML多行数组

YAML Multi-Line Arrays

在yaml中,可以轻松创建多行字符串。但是,我希望能够使用|字符创建多行数组(主要用于配置文件中的可读性)。

yaml数组可以表示为:['key1', 'key2', 'key3']

yaml序列使用破折号,后跟空格,然后是字符串:

1
2
3
- String1
- String2
- String3

这将评估为:['string1', 'string2', 'string3']

yaml映射是一个键和值对数组,我们在yaml中一直可以看到:

1
2
3
Key1: string1
Key2
: string2
Key3
: string3

这一切都很好,但我不能为我的生活看如何做一个多行阵列。像这样:

1
2
3
|
['string1', 'string2', 'string3']
['string4', 'string5', 'string6']

除了在yaml中创建多个数组映射并在我选择的编程语言中合并它们之外,还有什么方法可以实现多行数组,可能是像python那样使用{ },但在yaml中呢?


yaml序列是一个数组。所以这是正确的表达方式:

1
2
3
4
5
6
7
key:
 - string1
  - string2      
  - string3
  - string4
  - string5
  - string6

这意味着:

1
key: ['string1', 'string2', 'string3', 'string4', 'string5', 'string6']

将单个行数组拆分为多行也是合法的:

1
2
3
key: ['string1', 'string2', 'string3',
  'string4', 'string5',
  'string6']

甚至在单行数组中有多行字符串:

1
2
key: ['string1', 'long
  string', 'string3', 'string4', 'string5', 'string6']


你试过这个吗?

1
2
3
4
5
6
-
  name
: Jack
  age
: 32
-
  name
: Claudia
  age
: 25

我得到这个:[{"name"=>"Jack","age"=>32}, {"name"=>"Claudia","age"=>25}](我使用YAMLRuby类)。


以下内容将起作用:

1
2
3
4
myarray: [
  String1, String2, String3,
  String4, String5, String5, String7
]

我使用snakeyaml实现来测试它,但我不确定其他实现。