¿Cómo creo una matriz vacía en YAML?

190
array_with_three_elements:
- 1
- 2
- 3

empty_array:

¿Hay alguna manera de especificar que empty_array: es una matriz sin elementos, como con []? Cuando lo cargo en un hash rubí, me gustaría que sepa que es una matriz.

Gracias

Julian Mann
fuente
14
has intentado usar []?
Jimmy

Respuestas:

307

Intenta usar [], como:

empty_array: []

Entonces en Ruby tienes:

x = YAML::load("empty_array: []")
x # => {"empty_array" => []}
maerics
fuente
32
Solo quería agregar que puedes ir a irb y escribir algo como: "require 'yaml'; YAML :: dump ({: hi => []})" para ver cuál debería ser el yaml para un objeto.
Mike A.
20
Solo me gustaría señalar que JSON es un subconjunto oficial de YAML 1.2 y casi un subconjunto de versiones anteriores. Por lo tanto, []funciona para una secuencia vacía, ""funciona para una cadena vacía y {}funciona para una asignación vacía.
Daniel H
2
@DanielH Tenga en cuenta que los analizadores YAML pueden no admitir saltos de línea en el interior []o {}estructuras, lo cual es una gran incompatibilidad con JSON (copiar y pegar de Wikipedia ) Saludos
olibre
2
Muchos analizadores todavía están en YAML 1.1; Esto es probablemente de lo que Wikipedia está hablando. El objetivo de la versión 1.2 es hacer de JSON un subconjunto oficial.
Daniel H
¿Qué tal strictyaml?
Xaser