Ich habe ein JSON-Array mit Objekten, die ich in YAML konvertieren möchte.
{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}
Gibt es eine äquivalente Darstellung in YAML, die nicht nur JSON ist? Ich würde gerne so etwas tun
AAPL:
- :
shares: -75.088
date: 11/27/2015
- :
shares: 75.088
date: 11/26/2015
aber das sauberste, was ich mir ausgedacht habe, ist
AAPL:
- {
shares: -75.088,
date: 11/27/2015
}
{
shares: 75.088,
date: 11/26/2015
}
Antworten:
117 für die Antwort № 1TL; DR
Du willst das:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Zuordnungen
Das YAML-Äquivalent eines JSON-Objekts ist eine Zuordnung, die folgendermaßen aussieht:
# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2
Beachten Sie, dass sich die ersten Zeichen der Schlüssel in einer Blockzuordnung in derselben Spalte befinden müssen. Demonstrieren:
# OK
foo: 1
bar: 2
# Parse error
foo: 1
bar: 2
Sequenzen
Das Äquivalent eines JSON-Arrays in YAML ist eine Sequenz, die wie folgt aussieht:
# flow style
[ foo bar, baz ]
# block style
- foo bar
- baz
In einer Blocksequenz wird die -
s muss in derselben Spalte stehen.
JSON zu YAML
Lassen Sie uns Ihren JSON in YAML verwandeln. Hier ist Ihr JSON:
{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}
YAML ist eine übergeordnete Menge von JSON, daher ist das oben genannte bereits gültige YAML-Format. Verwenden wir jedoch die Funktionen von YAML, um dieses hübscher zu gestalten.
Von innen nach außen haben wir Objekte, die so aussehen:
{
"shares": -75.088,
"date": "11/27/2015"
}
Die entsprechende YAML-Zuordnung lautet:
shares: -75.088
date: 11/27/2015
Wir haben zwei davon in einem Array (Sequenz):
- Aktien: -75.088 Datum: 27.11.2015
- Aktien: 75.088 Datum: 26.11.2015
Beachten Sie, wie die -
s like up und die ersten Zeichen der Mapping-Tasten stehen in einer Reihe.
Schließlich ist diese Sequenz selbst ein Wert in einem Mapping mit dem Schlüssel AAPL
:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
Das Parsen und Konvertieren in JSON führt zu dem erwarteten Ergebnis:
{
"AAPL": [
{
"date": "11/27/2015",
"shares": -75.088
},
{
"date": "11/26/2015",
"shares": 75.088
}
]
}
Sie können es sehen (und interaktiv bearbeiten) Hier.