YAML多线阵列

YAML多线阵列,yaml,Yaml,在中,您可以轻松创建。但是,我希望能够使用|字符创建多行数组(主要用于配置文件中的可读性) YAML数组可以表示为:['key1','key2','key3'] YAML序列使用破折号,后跟空格,然后是字符串: - String1 - String2 - String3 这将计算为:['string1','string2','string3'] YAML映射是我们在YAML中一直看到的键和值对数组: Key1: string1 Key2: string2 Key3: string3 这一切都

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

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中,以下方法可行:

myarray: [
  String1, String2, String3,
  String4, String5, String5, String7
]

我使用snakeyaml实现对其进行了测试,但我不确定是否还有其他实现。

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类)。

从可读性的角度来看,当数组元素值的数量很小时,以下内容对我很有用:

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

这已经过测试,可以与
snakeyaml
ruamel.yaml

一起使用。如果您需要的是一组数组,您可以通过以下方式执行:

键:
-[‘value11’、‘value12’、‘value13’]
-[‘value21’、‘value22’、‘value23’]

它与Puppet Enterprise 3.7 hiera yaml(Ruby yaml)一起使用。我发现Ruby yaml的一个特点也是非常敏感的,那就是识别,避免使用标签。因此,上面的示例应该类似于两行中相同数量的空格,其中第一行是
myarray:[String1,String2,String3,
,第二行是`String4,String5,String5,String7]`如果字符串以一个开头(例如,在命令行中传递的选项),是否会有问题?那么我必须引用吗?`-“-myarg”`?这完全取决于您用来解析YAML的任何程序。这个问题只是关于YAML规范。我不知道YAML可以处理这样的括号。谢谢:-)老实说,什么是多线阵列&它什么时候才有意义?而不仅仅是代码的外观必须在屏幕上水平滚动才能看到所有选项,而不是一次在一个屏幕上看到所有选项。多行可能会使差异更具可读性,由于添加或删除的每一项都对应于添加或删除的一行。@XedinUnknown良好的技术论证和推理-版本控制的使用受未来更改的影响较小。感谢分享。感谢Vinicius,但问题明确指出:“.我希望能够创建多行阵列”,而不是多行多阵列。我没有意识到问题不完全是我的,但我是为此而来的-谢谢@Vinicius