Como crio uma matriz vazia no YAML?

190
array_with_three_elements:
- 1
- 2
- 3

empty_array:

Existe alguma maneira de especificar que empty_array: existe uma matriz sem elementos, como with []? Quando carrego em um hash rubi, gostaria que soubesse que é uma matriz.

obrigado

Julian Mann
fonte
14
você já tentou usar []?
Jimmy

Respostas:

307

Tente usar [], como:

empty_array: []

Então, no Ruby você tem:

x = YAML::load("empty_array: []")
x # => {"empty_array" => []}
maerics
fonte
32
Eu só queria acrescentar que você pode acessar o irb e digitar algo como: "require 'yaml'; YAML :: dump ({: hi => []})" para ver o que o yaml deve ser para um objeto.
Mike A.
20
Gostaria apenas de salientar que o JSON é um subconjunto oficial do YAML 1.2 e quase um subconjunto de versões anteriores. Assim, []funciona para uma sequência vazia, ""funciona para uma sequência vazia e {}funciona para um mapeamento vazio.
Daniel H
2
@DanielH Note-se que os analisadores YAML podem não suportar quebras de linha dentro []ou {}estruturas, o que é uma grande incompatibilidade com JSON (cópia-colar de Wikipedia ) Saúde
olibre
2
Muitos analisadores ainda estão no YAML 1.1; provavelmente é sobre isso que a Wikipedia está falando. O objetivo da versão 1.2 é tornar o JSON um subconjunto oficial.
Daniel H
e quanto ao strictyaml?
Xaser 03/04