是否可以在YAML文件的根部分中有一个列表? 到目前为止,我还没有看到过遵循这种结构的文件,而且我一直在问自己这是否违反了语法。
以下是一个例子:
- 'entry A'
- 'entry B'
- 'entry C'
到目前为止我所看到的:
list:
- 'entry A'
- 'entry B'
- 'entry C'
换句话说,list:
部分是否已过时?
答案 0 :(得分:4)
可以这样做。
这是一个使用snakeYaml的java示例:
org.yaml.snakeyaml.Yaml yaml = new org.yaml.snakeyaml.Yaml();
Object o = yaml.load("- 'entry A'\n- 'entry B'\n- 'entry C'");
System.out.println(o.getClass().getName());
代码的输出是:
java.util.ArrayList
但在实际情况中,我们将对象内容存储到yaml文件中。当我们这样做时,如果一个字段的类型是List,我们实际上就像你一直看到的那样存储:
'field name':
- item1
- item2
答案 1 :(得分:3)
标量list
没有过时,它定义了一个完全不同的结构。
YAML文件包含映射,序列和标量。
在顶级你可以有一个(单个)标量(诚然这不是很灵活):
Hello world
或映射:
abc:
- 1
- 2
或列表:
- 1
- 2
你的第一个例子在顶层有一个由标量组成的序列,你的第二个例子在顶层有一个带有单个键值对的映射。关键是标量list
和值是一系列标量。