Как мне создать пустой массив в 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" => []}

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.