2016-04-16 85 views
3

是否有可能在YAML文件的根部分有一個列表? 到目前爲止,我沒有看到遵循這種結構的文件,而且我一直在問自己是否違反語法。YAML:是否有可能在根節中有一個列表?

下面是一個例子:

- 'entry A' 
- 'entry B' 
- 'entry C' 

什麼我迄今所看到的:

list: 
    - 'entry A' 
    - 'entry B' 
    - 'entry C' 

所以,換句話說,就是list:部分過時了嗎?

回答

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文件。當我們做到這一點,如果申請一個的類型列表中,我們實際存儲等爲你總是看到:

'field name': 
- item1 
- item2 
3

否標list沒有過時,它定義了一個完全不同的結構。

YAML文件包括映射序列標量

  • 映射由鍵值對組成。密鑰可以是標量或列表;一個值可以是映射或序列或標量。
  • 甲列表包括元素,並且每個元素可以是一個映射,一個序列或一個標量
  • 的標量原則上是一個字符串,但某些字符串可以專門被解釋(數字僅 - >整數,「假」 - >布爾等)

在頂層可以有一個(單個)的標量(誠然,這不是很靈活):

Hello world 

或映射:

abc: 
    - 1 
    - 2 

或一個列表:

- 1 
- 2 

你的第一實施例具有在頂層由標量的序列,第二個實施例具有在頂層與單個鍵 - 值對的映射。關鍵是標量list,值是一個標量序列。

相關問題