Подтвердить что ты не робот

Многолинейные массивы 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?

4b9b3361

Ответ 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