In YAML können Sie problemlos mehrzeilige Zeichenfolgen erstellen . Ich möchte jedoch die Möglichkeit haben, mit dem |
Zeichen ein mehrzeiliges Array (hauptsächlich zur besseren Lesbarkeit in Konfigurationsdateien) zu erstellen .
Ein YAML- Array kann wie folgt dargestellt werden : ['key1', 'key2', 'key3']
.
Eine YAML- Sequenz verwendet einen Bindestrich, gefolgt von einem Leerzeichen und einer Zeichenfolge:
- String1
- String2
- String3
Dies würde bewerten zu : ['string1', 'string2', 'string3']
.
Eine YAML- Zuordnung ist ein Array von Schlüssel- und Wertepaaren, die wir in YAML ständig sehen:
Key1: string1
Key2: string2
Key3: string3
Das ist alles schön und gut, aber ich kann für mein ganzes Leben nicht sehen, wie man ein mehrzeiliges Array macht. Etwas wie das:
|
['string1', 'string2', 'string3']
['string4', 'string5', 'string6']
Gibt es eine Möglichkeit, mehrzeilige Arrays zu erstellen, ohne mehrere Array-Zuordnungen in YAML zu erstellen und in der Programmiersprache Ihrer Wahl zusammenzuführen, vielleicht mit { }
Python, aber in YAML?
Antworten:
Eine YAML- Sequenz ist ein Array . Das ist also der richtige Weg, um es auszudrücken:
Das hat die gleiche Bedeutung wie:
Es ist auch legal, ein einzeiliges Array auf mehrere Zeilen aufzuteilen:
und haben sogar mehrzeilige Zeichenfolgen in einzeiligen Arrays:
quelle
hast du das versucht
Ich bekomme folgendes:
[{"name"=>"Jack", "age"=>32}, {"name"=>"Claudia", "age"=>25}]
(Ich benutze dieYAML
Ruby-Klasse).quelle
Folgendes würde funktionieren:
Ich habe es mit der Implementierung von snakeyaml getestet, bin mir jedoch bei anderen Implementierungen nicht sicher.
quelle
myarray: [String1, String2, String3,
und die zweite Zeile "String4, String5, String5, String7]" sindDas Folgende funktioniert für mich und es ist aus Sicht der Lesbarkeit gut, wenn die Array-Elementwerte klein sind:
Hinweis: Snakeyaml-Implementierung verwendet
quelle
Wenn Sie ein Array von Arrays benötigen, können Sie dies folgendermaßen tun:
quelle