Как мне создать пустой массив в YAML?

190
array_with_three_elements:
- 1
- 2
- 3

empty_array:

Есть ли способ указать, что empty_array: массив без элементов, например, с []? Когда я загружаю его в рубиновый хеш, я бы хотел, чтобы он знал, что это массив.

Спасибо

Джулиан Манн
источник
14
ты пробовал использовать []?
Джимми

Ответы:

307

Попробуйте использовать [], например:

empty_array: []

Итак, в Ruby у вас есть:

x = YAML::load("empty_array: []")
x # => {"empty_array" => []}
maerics
источник
32
Я просто хотел добавить, что вы можете зайти в irb и набрать что-то вроде: «require 'yaml'; YAML :: dump ({: hi => []})», чтобы увидеть, каким должен быть yaml для объекта.
Майк А.
20
Я просто хотел бы отметить, что JSON является официальным подмножеством YAML 1.2 и почти подмножеством более ранних версий. Таким образом, []работает для пустой последовательности, ""работает для пустой строки и {}работает для пустого отображения.
Даниэль Х
2
@DanielH Обратите внимание, что парсеры YAML могут не поддерживать разрывы строк внутри []или {}структуры, что является серьезной несовместимостью с JSON (copy-paste из Википедии ).
olibre
2
Многие парсеры все еще на YAML 1.1; Вероятно, это то, о чем говорит Википедия. Весь смысл выпуска 1.2 состоит в том, чтобы сделать JSON официальным подмножеством.
Даниэль Х
как насчет strictyaml?
Xaser