在 YAML 中,您可以轻松创建 multi-line strings。但是,我希望能够使用 |
字符创建一个多行数组(主要是为了配置文件中的可读性)。
YAML 数组 可以表示为:['key1', 'key2', 'key3']
。
YAML 序列使用一个破折号,后跟一个空格,然后是一个字符串:
- String1
- String2
- String3
这将评估为:['string1', 'string2', 'string3']
。
YAML 映射是我们在 YAML 中经常看到的键值对数组:
Key1: string1
Key2: string2
Key3: string3
这一切都很好,但我一生都看不到如何做一个多行数组。像这样的东西:
|
['string1', 'string2', 'string3']
['string4', 'string5', 'string6']
除了在 YAML 中创建多个数组映射并将它们合并到我选择的编程语言中之外,有没有办法实现多行数组,也许像 Python 那样使用 { }
但在 YAML 中?
YAML 序列是一个数组。所以这是正确的表达方式:
key:
- string1
- string2
- string3
- string4
- string5
- string6
这与以下含义相同:
key: ['string1', 'string2', 'string3', 'string4', 'string5', 'string6']
将单行数组拆分为多行也是合法的:
key: ['string1', 'string2', 'string3',
'string4', 'string5',
'string6']
甚至在单行数组中有多行字符串:
key: ['string1', 'long
string', 'string3', 'string4', 'string5', 'string6']
你试过这个吗?
-
name: Jack
age: 32
-
name: Claudia
age: 25
我明白了:[{"name"=>"Jack", "age"=>32}, {"name"=>"Claudia", "age"=>25}]
(我使用 YAML
Ruby 类)。
以下将起作用:
myarray: [
String1, String2, String3,
String4, String5, String5, String7
]
我使用snakeyaml 实现对其进行了测试,但我不确定其他实现。
myarray: [String1, String2, String3,
,第二行是`String4,String5,String5,String7]`
如果你需要的是一个数组数组,你可以这样做:
key:
- [ 'value11', 'value12', 'value13' ]
- [ 'value21', 'value22', 'value23' ]
当数组元素值的数量很少时,以下内容对我有用,并且从可读性的角度来看它很好:
key: [string1, string2, string3, string4, string5, string6]
这已经过测试,可以与 snakeyaml
和 ruamel.yaml
一起使用。