YAMLからJSONへの変換
対応するYAMLブロックを整形済みJSONに変換し、値の型を確認できます。
使い方
ブロック形式のマッピングとシーケンスを使ったYAML設定を貼り付けます。インデントから入れ子のJSONオブジェクトと配列を作ります。引用文字列を保ち、単純な文字列、真偽値、null、安全な小数を読み取ります。
整形されたJSONと型の一覧を確認します。一覧はJSON Pointer形式のパスで値を示し、配列の各要素を含みます。構造と値が利用するアプリケーションの期待に合うことを確認してからJSONをコピーしてください。
JSONにはコメント構文がないため、解析後の値からコメントを取り除きます。マッピングの空値はnullになります。インデントされた子ブロックが続く場合は、その入れ子の構造が値になります。引用符のない数値識別子にはYAML Coreの解釈規則を使います。ゼロや書式を保つ識別子は引用符で囲んでください。
小さな設定断片を手早く構文変換する場合に使います。本番で使う前に、変換後のJSONをアプリケーションのスキーマで検証し、データを確認してください。
手順
- 対応するブロック構文のYAMLを貼り付ける
- エラー、JSON、型の一覧を確認する
- 値を確認してからJSONをコピーする
計算例
表示されたYAML例を貼り付けてください。ポートフォリオ名と二つの保有銘柄を含むJSONオブジェクトに変換されます。引用符で囲まれた銘柄記号00123は文字列のままです。重み0.6と0.4は数値になります。
この例のテストでは、文字列の銘柄記号と二つの数値を含め、整形後のJSONに同じ値があることを確認します。重みの合計や正規化は行わず、値も変更しません。
このツールを使う場面
小さなYAML設定を確認したい場合や、JSONを受け取るアプリケーション向けに表現したい場合に使えます。
本番や金融用途で使う前に、受け取り側のアプリケーションが求めるスキーマとデータの検証を行ってください。
よくある間違い
JSONとして有効でも、ポートフォリオ設定として有効とは限りません。変換後に必須キー、値の型、アプリケーション固有の制約を確認してください。数値として解釈される可能性がある銘柄記号や口座識別子は引用符で囲みます。
未対応のYAML機能には使わないでください。アンカー、エイリアス、タグ、フロー構造、ブロックスカラー、複数ドキュメントは、同等のJSON値に変換されずエラーになります。
変換手順
YAMLテキスト → 対応するブロック構造と値を解析 → JSON値を二つの空白でインデントして出力
これは構文変換であり、スキーマ検証ではありません。ブロック形式のマッピングとシーケンス、引用文字列、コメント、真偽値のtrue、True、TRUE、false、False、FALSE、null値のnull、Null、NULL、~、安全な有限小数に対応します。未対応のYAML機能はエラーとなり、部分的なJSONは出力しません。00123のような識別子を文字列として保つには引用符で囲んでください。
制限と前提
このツールはYAML全体ではなく、限られた構文に対応します。アンカー、エイリアス、タグ、ディレクティブ、複数ドキュメント、複雑なキー、インライン配列やオブジェクトなどのフロー構造、ブロックスカラーは拒否します。真偽値とnullは記載した表記だけを認識します。特殊浮動小数点数、基数接頭辞、数値区切り、対応外の小数表記は拒否します。アプリケーションのスキーマやポートフォリオの意味は検証しません。上限は25万文字、1万行、入れ子64段です。変換で値が変わるおそれのある安全でない数値や高精度の数値は拒否します。00123のような識別子の先頭ゼロを保つには引用符で囲んでください。解析はブラウザー内で行い、最後の入力はこの端末のローカルストレージに保存される場合があります。
用語
- マッピングとシーケンス
- マッピングは文字列のキーに値を対応させます。シーケンスは順序付きの一覧で、JSON配列として表されます。
- 型一覧のパス
- JSON Pointer形式のパスは、オブジェクトのキーとシーケンスのインデックスで値を示します。例は/portfolio/holdings/0/symbolです。
- 解析された値の型
- 解析された型はJSON値の型を表します。ポートフォリオやアプリケーションのスキーマを満たすかどうかは示しません。
ほかの方法と比較
このツールはYAMLのブロック構文の一部をJSONに変換します。表計算データにはCSVから金融JSONへの変換ツールをお使いください。どちらのツールもポートフォリオ設定の金融上の適切さは判定しません。
変換後のJSONを、利用するアプリケーションが求めるスキーマで検証してください。変換成功が確認するのは対応構文だけです。必須項目、配分比率、銘柄記号、取引指示は検証しません。
よくある質問
YAMLからJSONへの変換はどのように動作しますか?
インデントされたブロック形式のマッピングとシーケンスを読み取り、解析した値をJSONに出力します。入れ子の構造、引用文字列、コメント、null、真偽値、安全な精度の有限小数に対応します。対応範囲はYAML仕様全体ではなく、その一部です。
YAMLの値はどのようなJSON型になりますか?
true、True、TRUEは真偽値になり、false、False、FALSEも同様です。null、Null、NULL、~はJSONのnullになります。対応する小数は数値になります。引用符で囲んだ値は文字列として保たれます。ほかの単純な値も文字列です。YAML Coreでは引用符のない00123は数値として解釈されます。先頭のゼロを残す識別子は引用符で囲んでください。
型の一覧には何が表示されますか?
型の一覧はJSON Pointer形式のパスを使い、シーケンスのインデックスも表示します。たとえば/portfolio/holdings/0/symbolは最初の保有銘柄の記号を示します。解析後のJSON型を表示しますが、アプリケーションのスキーマは検証しません。
入れ子のマッピングやシーケンスはどうインデントしますか?
インデントで入れ子のブロックを表します。空白を使い、子要素のインデントをそろえてください。インデントにタブは使えません。意図した構造を推測せず、インデントの問題をエラーとして報告します。
入力が不正または未対応の場合はどうなりますか?
未対応または不正な入力があると、エラーを表示しJSONは出力しません。行番号が示された場合はその行を修正して再度変換してください。アンカー、エイリアス、タグ、フロー形式の構造、ブロックスカラー、複数ドキュメントには対応しません。
関連ツール
表計算データから変換する場合はCSVから金融JSONへの変換ツールを使います。変換後はJSON検証ツールまたは利用するアプリケーションのスキーマ検査を実行してください。このページはデータ形式のみを変換し、ポートフォリオ配分や投資判断を評価しません。