/ / YAML equivalente de la matriz de objetos en JSON - json, yaml

YAML equivalente de la matriz de objetos en JSON - json, yaml

Tengo una matriz JSON de objetos que estoy intentando convertir a YAML.

{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}

¿Hay una representación equivalente en YAML que no sea JSON? Me gustaría hacer algo como

AAPL:
- :
shares: -75.088
date: 11/27/2015
- :
shares: 75.088
date: 11/26/2015

Pero lo más limpio que he encontrado es

AAPL:
- {
shares: -75.088,
date: 11/27/2015
}
{
shares: 75.088,
date: 11/26/2015
}

Respuestas

117 para la respuesta № 1

TL; DR

Tu quieres esto:

AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015

Mapeos

El equivalente YAML de un objeto JSON es una asignación, que se parece a esto:

# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2

Tenga en cuenta que los primeros caracteres de las claves en un mapeo de bloques deben estar en la misma columna. Demostrar:

# OK
foo: 1
bar: 2
# Parse error
foo: 1
bar: 2

Secuencias

El equivalente de una matriz JSON en YAML es una secuencia, que se parece a cualquiera de estos (que son equivalentes):

# flow style
[ foo bar, baz ]
# block style
- foo bar
- baz

En una secuencia de bloques -s debe estar en la misma columna.

JSON a YAML

Vamos a convertir su JSON en YAML. Aquí está su JSON:

{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}

Como punto de trivia, YAML es un superconjunto de JSON, por lo que lo anterior ya es válido YAML, pero en realidad utilicemos las características de YAML para hacerlo más bonito.

A partir de adentro hacia afuera, tenemos objetos que se ven así:

{
"shares": -75.088,
"date": "11/27/2015"
}

El mapeo YAML equivalente es:

shares: -75.088
date: 11/27/2015

Tenemos dos de estos en una matriz (secuencia):

  • acciones: -75.088 fecha: 27/11/2015
  • acciones: 75.088 fecha: 26/11/2015

Observe cómo -Me gusta arriba y los primeros caracteres de las teclas de mapeo se alinean.

Finalmente, esta secuencia es en sí misma un valor en un mapeo con la clave AAPL:

AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015

Al analizar esto y convertirlo de nuevo a JSON se obtiene el resultado esperado:

{
"AAPL": [
{
"date": "11/27/2015",
"shares": -75.088
},
{
"date": "11/26/2015",
"shares": 75.088
}
]
}

Puedes verlo (y editarlo interactivamente) aquí.