Многолинейные массивы YAML
В YAML вы можете легко создать многострочные строки. Однако мне хотелось бы создать многострочный массив (в основном для чтения в файлах конфигурации) с использованием символа |
.
массив YAML может быть представлен как ['key1', 'key2', 'key3']
.
YAML последовательность использует тире, за которой следует пробел, а затем строка:
- String1
- String2
- String3
Это будет выглядеть так: ['string1', 'string2', 'string3']
.
YAML mapping - это массив пар ключей и значений, которые мы видим все время в YAML:
Key1: string1
Key2: string2
Key3: string3
Это все хорошо и хорошо, но я не могу для жизни меня видеть, как делать многострочный массив. Что-то вроде этого:
|
['string1', 'string2', 'string3']
['string4', 'string5', 'string6']
Не удалось создать множественные сопоставления массивов в YAML и слить их на моем языке программирования по выбору, есть ли способ получить многострочные массивы, возможно, с { }
, как у Python, но в YAML?
Ответы
Ответ 1
Последовательность 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']
Ответ 2
ты пробовал это?
-
name: Jack
age: 32
-
name: Claudia
age: 25
Я получаю это: [{"name"=>"Jack", "age"=>32}, {"name"=>"Claudia", "age"=>25}]
(я использую класс YAML
Ruby).
Ответ 3
Следующие действия будут работать:
myarray: [
String1, String2, String3,
String4, String5, String5, String7
]
Я тестировал его с помощью реализации snakeyaml, но я не уверен в других реализациях.
Ответ 4
Следующее работает для меня и хорошо с точки зрения читаемости, когда значения элементов массива малы:
key: [string1, string2, string3, string4, string5, string6]
Примечание: используется реализация snakeyaml