テキスト 🔒 ブラウザ内で動作 — データは送信されません

JSON変換ツール

JSON、YAML、CSV、XMLをどの向きにも相互変換。エラーメッセージもわかりやすく、すべてブラウザー内で完結します。

入力
出力

JSON変換ツール — JSONとYAML・CSV・XMLを相互に変換

JSON、YAML、CSV、XMLのいずれかを貼り付けて出力したい形式を選ぶだけで、入力に合わせて変換結果が表示されます。変換の向きは自由です。KubernetesマニフェストのためにJSONをYAMLに、APIを呼び出すためにYAMLをJSONに、表計算ソフトで開くためにJSONをCSVに、インポート用スクリプトのためにCSVをJSONに、そして古いサービスがまだXMLしか話さないときにはXMLをJSONに。解析も変換もブラウザー内で行われるため、設定ファイルや顧客データのエクスポートが端末の外に出ることはありません。

このツールは、実際に貼り付けられる現実のファイルを前提に作られています。セミコロン区切りでバイトオーダーマーク付きのExcel書き出しCSV、列に収めなければならない入れ子のオブジェクトを含むJSON、属性だらけのXMLなどです。入力が壊れているときは、黙って失敗する代わりに、行と列でその場所を知らせます。

変換の手順

  1. 変換元で入力形式を、変換先で出力形式を選びます。
  2. データを貼り付けるか、ファイルを開くで読み込みます。サンプルを押すと例が表示されます。
  3. 入力に合わせて結果が表示されます。必要に応じてインデント、CSVの区切り文字、XMLのルート要素を調整します。
  4. コピーまたはダウンロードを押します。⇄ボタンを使えば、結果を逆向きに変換し直せます。

各形式の特徴

形式得意なこと主な用途
JSON厳密なデータ型、入れ子構造、あらゆる環境にあるパーサーAPI、JavaScript、NoSQLのドキュメント、設定ファイル
YAML人が読みやすい、コメントが書ける、記号が少ないKubernetes、Docker Compose、CIパイプライン、Ansible
CSV平坦な表、どの表計算ソフトでも開けるエクスポート、インポート、レポート、開発者以外に渡すデータ
XML属性、混在コンテンツ、スキーマSOAPサービス、RSSフィード、Officeドキュメント、古い基幹システム

JSONからCSVへ:入れ子のデータを平坦化する

CSVファイルは平坦な表ですが、JSONはオブジェクトの中にオブジェクトを入れ子にできます。このツールは各レコードを平坦化します。入れ子のオブジェクトは address.city のようなドット区切りの列名になり、配列には tags.0、tags.1 のようにインデックスが付きます。列は見つかったすべてのキーの和集合で、最初に現れた順に並ぶため、あるフィールドを持たないレコードはそのセルが空になるだけです。区切り文字、引用符、改行を含む値はRFC 4180の定めるとおりに引用符で囲んでエスケープされます。これはExcel、Googleスプレッドシート、データベースのインポートツールが想定している形です。

逆にCSVからJSONへ変換するときは、1行目を列名として読み、残りの各行をオブジェクトにします。ドット区切りの列名を入れ子にするにチェックを入れると address.city が再び入れ子のオブジェクトになるため、JSONファイルを表計算ソフト経由で往復させることができます。

CSVでつまずきやすいポイント

  • 区切り文字:自動のままにしておくと、1行目を見てカンマ、セミコロン、タブ、パイプのいずれかを選びます。ヨーロッパ版Excelの書き出しはセミコロン区切りですが、この判別で問題なく扱えます。
  • 引用符で囲まれたフィールド:引用符内のカンマや改行は値の一部として残り、2つ重ねた引用符 "" は1つの引用符になります。
  • バイトオーダーマーク:ExcelがUTF-8のCSVの先頭に付ける見えない文字は取り除かれるため、最初の列名がきれいに読み取れます。
  • 数値と真偽値:数値とtrue/falseを判別にチェックが入っていると、42 は数値に、true は真偽値になります。007 や 1.50 のような値は文字列のままです。数値にすると先頭のゼロや末尾の桁が失われてしまうからです。

JSONとYAML

YAMLはJSONの上位互換なので、どのJSONドキュメントも情報を失わずにYAMLへ変換できます。意外な落とし穴があるのは逆方向です。パーサーによっては、引用符なしの yes、no、日付、バージョン番号が別の型に変わってしまいます。このツールはYAML 1.2のコアスキーマでYAMLを読むため、特別扱いされるのは true、false、数値、null だけで、2024-01-01 のような日付は文字列のままです。YAMLを書き出すときは、'yes'、'on'、'1.10' のように他のパーサーが誤読しかねない文字列を引用符で囲みます。コメントとアンカーにはJSONに相当するものがないため、アンカーと << マージキーは完全なコピーに展開され、コメントは削除されます。

JSONとXML

XMLにはJSONにない要素があるため、このツールは広く使われている規則に従います。属性は @ で始まるキーになり、子要素と並ぶテキストは #text に、繰り返される要素は配列になります。したがって <book id="b1"><title>Clean Code</title></book> は {"book": {"@id": "b1", "title": "Clean Code"}} になります。JSONをXMLに変換するときは同じ規則を逆向きに適用し、XMLの名前として使えないキーは、使えない文字がアンダースコアに置き換えられます。JSONのトップレベルに複数のキーがある場合は、ルート要素で外側を包む要素の名前を指定してください。

対処しやすいエラーメッセージ

入力が壊れているときに空の欄を表示するだけの変換ツールは、時間の無駄です。このツールは、何がどこで問題なのかを伝えます。不正なJSONは、そこにあってはならない最初の文字の行と列で報告され、YAMLのエラーにはパーサーが示す理由が添えられ、整形式でないXMLはその位置とともに報告されます。開いた引用符が閉じられていないCSVフィールドも指摘します。放っておくと、ファイルの残り全体を飲み込んでしまうからです。

プライバシー

データはどこにも送信されません。YAMLパーサーは最初にYAMLを選んだときに一度だけ読み込まれ、それ以外はすべてページ内の素のJavaScriptで動きます。そのため、環境設定ファイル、トークンを含むAPIレスポンス、個人データを含むエクスポートにも安心して使えます。

関連ツール

変換前にJSONをチェックしたり見やすく整形したりするには、JSON整形ツールを使ってください。設定ファイルの2つのバージョンを比べるならテキスト比較ツールが便利です。変換の向きが決まっているなら、タスク別のページからすぐに始められます:JSONをYAMLに変換、JSONをCSVに変換、XMLをJSONに変換。JSONをTypeScriptのinterface、Goの構造体、Pythonのモデルに変換したい場合は、JSON型定義ジェネレーターを使ってください。