YAML・TOML・JSON 変換
JSON・YAML・TOML を相互に変換したり、文書を検証して整形したりします。エラーは行と列で表示します。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
import json
import tomllib
text = 'name = "codeknife"\nports = [80, 443]\ndebug = false'
print(json.dumps(tomllib.loads(text), indent=2))できること
文書を JSON・YAML・TOML の間で双方向に変換します。両方に同じ形式を選ぶと、検証と整形を行います。構文エラーには、見つかった行と列が付きます。
使い方
- 文書を貼り付けるか、ファイルをドロップします。
- 変換元に文書の形式、変換先に欲しい形式を選びます。両方に同じ形式を選ぶと検証と整形になります。
- インデントを選び、結果をコピーまたはダウンロードするか、出力を入力として使うで向きを入れ替えます。
例
YAML の name: codeknife と ports: [80, 443] は、JSON では {"name": "codeknife", "ports": [80, 443]}、TOML では name = "codeknife" と ports = [ 80, 443 ] になります。
知っておくと便利なこと
- YAML はバージョン 1.2 として読み込みます。真偽値は
trueとfalseだけなので、yesやonは文字列のままです。---で複数に分かれた文書、重複キー、エイリアスが多すぎる文書は拒否します。 - TOML は最上位にテーブルが必要で、null がありません。リストや null を TOML に変換すると、パスを示すエラーになります。
- TOML の日付は、TOML を整形するときは日付のままで、JSON や YAML に変換すると文字列になります。
- コメントは変換で保持されません。JSON にコメントがなく、読み込んだデータにも含まれないためです。
変換せずに検証や整形をするには?
変換元と変換先に同じ形式を選びます。文書は厳密に読み込まれるため、誤りは行と列つきで報告され、有効な文書は統一されたインデントで書き戻されます。
よくある質問
YAML で yes・no・on が文字列のままなのはなぜですか?
このツールは YAML 1.2 を読み込み、真偽値は true と false だけです。yes・no・on・off は、古い YAML 1.1 のパーサーと違い、ただの文字列のままです。
すべての JSON 文書が TOML にならないのはなぜですか?
TOML は最上位がテーブルで、null がありません。最上位のリストや、どこかにある null は、黙って消さずにパスを示すメッセージで拒否します。
このツールはデータをどこかに送信しますか?
いいえ。すべてブラウザ内で行われます。入力した内容が当社のサーバーに送信されることはありません。