[解決済み】JSONのオブジェクトの配列をYAMLで表現したもの
2022-03-31 07:34:09
質問
オブジェクトのJSON配列を持っていて、YAMLに変換しようとしています。
{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}
JSONだけでなく、YAMLで同等の表現があるのでしょうか?私は次のようなことをしたいです。
AAPL:
- :
shares: -75.088
date: 11/27/2015
- :
shares: 75.088
date: 11/26/2015
が、私が思いついた最もクリーンなものは
AAPL:
- {
shares: -75.088,
date: 11/27/2015
}
{
shares: 75.088,
date: 11/26/2015
}
解決方法は?
TL;DR
これが欲しいんでしょう。
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
マッピング
JSONオブジェクトに相当するYAMLはマッピングであり、以下のようなものです。
# flow style
{ foo: 1, bar: 2 }
# block style
foo: 1
bar: 2
ブロックマッピングのキーの最初の文字は同じカラムになければならないことに注意。実演する。
# OK
foo: 1
bar: 2
# Parse error
foo: 1
bar: 2
シークエンス
YAMLにおけるJSON配列に相当するものはシーケンスで、以下のどちらかのように見えます(これらは等価です)。
# flow style
[ foo bar, baz ]
# block style
- foo bar
- baz
ブロックシーケンスでは
-
は同じ列でなければなりません。
JSONからYAMLへ
JSONをYAMLに変換してみましょう。ここにあなたのJSONがあります。
{"AAPL": [
{
"shares": -75.088,
"date": "11/27/2015"
},
{
"shares": 75.088,
"date": "11/26/2015"
},
]}
豆知識として、YAML は JSON のスーパーセットなので、上記はすでに有効な YAML ですが、実際に YAML の機能を使ってこれをより美しくしてみましょう。
内側から順に、次のようなオブジェクトを用意します。
{
"shares": -75.088,
"date": "11/27/2015"
}
同等のYAMLマッピングは
shares: -75.088
date: 11/27/2015
これを2つ、配列(シーケンス)にしています。
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
このように
-
が並び、マッピングキーの最初の文字が並びます。
最後に、この配列はそれ自体がマッピングの値であり、そのキーは
AAPL
:
AAPL:
- shares: -75.088
date: 11/27/2015
- shares: 75.088
date: 11/26/2015
これをパースしてJSONに戻すと、期待通りの結果が得られます。
{
"AAPL": [
{
"date": "11/27/2015",
"shares": -75.088
},
{
"date": "11/26/2015",
"shares": 75.088
}
]
}
見ることができます(インタラクティブに編集することも可能です) こちら .
関連
-
[解決済み] デリミタを使って文字列をスライスする方法
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] JavaScriptで配列を比較する方法は?
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】Swiftの配列の代入が矛盾している(参照でも深層コピーでもない)理由はあるのか?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] セル配列の各要素を削除する
-
[解決済み] Goではなぜリストがあまり使われないのですか?
-
[解決済み] PowerShellの配列から重複する値を削除する
-
[解決済み】Swiftで配列をシャッフルするにはどうすればいいですか?
-
[解決済み】Swiftで配列から重複する要素を削除する
-
[解決済み】Array.Add vs +=.
-
[解決済み】ファイルからBashの配列に行を読み込む【重複】。
-
[解決済み】Swiftで型付き配列を拡張するにはどうすればいいですか?
-
[解決済み】mongodbで複数の配列要素を更新する方法
-
[解決済み】Swiftの配列の代入が矛盾している(参照でも深層コピーでもない)理由はあるのか?)