TL; DR
Tu veux ça:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Mappages
L'équivalent YAML d'un objet JSON est un mappage, qui ressemble à ceci:
# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2
Notez que les premiers caractères des clés dans un mappage de bloc doivent être dans la même colonne. Démontrer:
# OK
foo: 1
bar: 2
# Parse error
foo: 1
bar: 2
Séquences
L'équivalent d'un tableau JSON en YAML est une séquence, qui ressemble à l'un de ces éléments (qui sont équivalents):
# flow style
[ foo bar, baz ]
# block style
- foo bar
- baz
Dans une séquence de blocs, les -
s doivent être dans la même colonne.
JSON à YAML
Transformons votre JSON en YAML. Voici votre JSON:
{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}
Pour simplifier, YAML est un sur-ensemble de JSON, donc ce qui précède est déjà YAML valide - mais utilisons en fait les fonctionnalités de YAML pour rendre cela plus joli.
En partant de l'intérieur, nous avons des objets qui ressemblent à ceci:
{
"shares": -75.088,
"date": "11/27/2015"
}
Le mappage YAML équivalent est:
shares: -75.088
date: 11/27/2015
Nous en avons deux dans un tableau (séquence):
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Notez comment les -
s s'alignent et les premiers caractères des touches de mappage s'alignent.
Enfin, cette séquence est elle-même une valeur dans un mapping avec la clé AAPL
:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
L'analyse et la reconversion en JSON donnent le résultat attendu:
{
"AAPL": [
{
"date": "11/27/2015",
"shares": -75.088
},
{
"date": "11/26/2015",
"shares": 75.088
}
]
}
Vous pouvez le voir (et le modifier de manière interactive) ici .
Excellente réponse ci-dessus. Une autre façon consiste à utiliser le formidable outil de wrapper yaml jq, yq à https://github.com/kislyuk/yq
Enregistrez votre exemple JSON dans un fichier, dites ex.json, puis
la source