2016-04-16 20 views
3

Ist es möglich, eine Liste im Stammbereich einer YAML-Datei zu haben? Bisher habe ich keine Dateien gesehen, die einer solchen Struktur folgen, und ich habe mich gefragt, ob es die Syntax verletzt. HierYAML: Ist es möglich, eine Liste im Stammbereich zu haben?

ein Beispiel:

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

Was ich bisher gesehen habe:

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

Also mit anderen Worten, der list: Abschnitt veraltet?

Antwort

4

Es ist in Ordnung, das zu tun.
Hier ist eine Java-Probe, die SnakeYAML verwenden:

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()); 

Der Ausgang des Codes ist:

java.util.ArrayList 

Aber im wirklichen Szenario speichern wir ein Objekt Inhalt in YAML-Datei. Wenn wir das tun, wenn der Typ eines eingereichten Liste ist, wie wir tatsächlich speichern, wie Sie immer sehen:

'field name': 
- item1 
- item2 
3

das Nein der skalare list nicht veraltet ist, definiert es eine völlig andere Struktur.

YAML-Dateien bestehen aus Zuordnungen, Sequenzen und Skalare.

  • Ein Mapping besteht aus Schlüssel/Wert-Paaren. Ein Schlüssel kann Skalare oder eine Liste sein; Ein Wert kann eine Zuordnung oder eine Sequenz oder ein Skalar sein.
  • Eine Liste besteht aus Elementen und jedes Element kann ein Mapping, eine Sequenz oder ein Skalar sein
  • Ein Skalar ist im Prinzip ein String, aber bestimmte Strings können speziell interpretiert werden (nur Zahlen -> ganze Zahlen, "False" - > boolean usw.)

Auf der obersten Ebene können Sie einen (einzigen) Skalar haben (zugegebenermaßen nicht sehr flexibel ist):

Hello world 

oder eine Abbildung:

abc: 
    - 1 
    - 2 

oder eine Liste:

- 1 
- 2 

Ihr erstes Beispiel auf der obersten Ebene eine Sequenz von Skalaren bestehend Ihr zweites Beispiel weist auf der obersten Ebene eine Abbildung mit einem einzigen Schlüssel-Wert-Paar. Der Schlüssel ist der Skalar list und der Wert ist eine Folge von Skalaren.

Verwandte Themen