`user.profile.name` のようなキー形式でJSONをフラット化、または逆にフラットなキーから 元のネスト構造へ復元できます。区切り文字・配列表記のカスタマイズやテーブル表示にも対応。
変換モード
変換オプション
区切り文字
配列の表記
入力(ネストされたJSON)
変換結果
{
"user.id": 1024,
"user.profile.name": "山田 太郎",
"user.profile.age": 28,
"user.profile.address.prefecture": "東京都",
"user.profile.address.city": "渋谷区",
"user.tags[0]": "admin",
"user.tags[1]": "editor",
"user.active": true
}キー数
8
最大ネスト深度
4
配列を含むキー
2
出力サイズ
259B
ADVICE
フラット化したデータを後でネスト化(復元)する予定がある場合は、区切り文字と配列表記の設定を必ずメモしておきましょう。異なる設定で復元すると元の構造に戻りません。
JSONのフラット化・ネスト解除とは?キー構造の変換の仕組み
JSONのフラット化(Flatten)とは、オブジェクトや配列が何階層にも入れ子になったJSONデータを、「親キー.子キー.孫キー」のような1本のパスと値のペアの集合に変換する処理です。逆に、フラット化されたキーと値のペアから元の入れ子構造を組み立て直す処理をネスト解除(Unflatten/復元)と呼びます。
APIレスポンスやログデータは階層構造のままだと一覧性が低く、スプレッドシートやBIツール、CSVベースの分析基盤にそのまま取り込みにくいという課題があります。本ツールは、そうしたネスト構造をワンクリックでフラットな形式に変換し、逆に必要になった際は元の構造へ戻すことができます。
区切り文字(ドット・アンダースコア・スラッシュ・任意のカスタム文字)や、配列の表記方法(角括弧表記・ドット表記)も選択でき、変換先のツールやフォーマットに合わせて調整可能です。
こんなシーンで便利です
スプレッドシートやBIツールにJSONデータを取り込みたい時
ネストされたJSONをフラット化し、テーブル形式・CSV形式でコピーすることで、スプレッドシートやBIツールに1行1キーの表として取り込みやすくなります。
APIレスポンスのキー構造を一覧で確認したい時
深くネストされたAPIレスポンスをフラット化することで、どのようなキーがどの階層に存在するかを1つのリストとして見渡せます。
ログ解析やデータ分析の前処理として
ログ収集基盤や分析ツールがフラットなキーと値の形式を前提としている場合、事前にJSONをフラット化しておくことで取り込みがスムーズになります。
フラット化済みのデータを元のネスト構造に戻して確認したい時
設定ファイルや保存データがフラットな形式で管理されている場合に、元のネスト構造に戻して内容を確認・編集したい場合に使えます。
使い方は簡単 4ステップ
- 変換したいJSONをテキストエリアに貼り付けます(サンプルデータの読み込みも可能です)。
- 「フラット化」または「ネスト化(復元)」のモードを選びます。
- 区切り文字(ドット・アンダースコア・スラッシュ・カスタム)と配列の表記方法を必要に応じて設定します。
- 変換結果をJSON形式・テーブル形式で確認し、コピーまたはファイルとしてダウンロードします。
※入力したJSONの解析・変換はすべてブラウザ内で完結し、外部サーバーへ送信されることはありません。
ご利用時の注意点
- 本ツールはすべてブラウザ内(JavaScript)で処理される設計です。入力したJSONデータが外部サーバーに送信されることはありません。
- 循環参照を含むデータや、JSON.parseで読み込めない不正な形式のJSON(末尾カンマ・シングルクォートのキーなど)には対応していません。
- 数値のみで構成されたキー(0, 1, 2...のような連番)を持つオブジェクトは、ネスト化(復元)時に自動的に配列として復元されます。
- 数万キーを超えるような非常に大きなJSONを扱う場合、ブラウザでの再帰処理により変換や表示に時間がかかることがあります。
フラット化のキー生成例(区切り文字:ドット「.」/配列表記:角括弧の場合)
以下のようなネストされたJSON(ユーザー情報とタグの配列を持つオブジェクト)を入力した場合、フラット化後は次のようなキーと値のペアに変換されます。
| フラット化後のキー | 値 | 変換元の構造 |
|---|---|---|
| user.profile.name | "太郎" | オブジェクトのネスト(2階層) |
| user.profile.age | 28 | オブジェクトのネスト(2階層) |
| user.tags[0] | "admin" | 配列の要素(インデックス0) |
| user.tags[1] | "editor" | 配列の要素(インデックス1) |
| user.active | true | 真偽値 |
※配列表記を「ドット表記」に変更すると、user.tags[0] はuser.tags.0 のように出力されます。区切り文字も同様に、選択した文字(アンダースコア・スラッシュ等)に応じて変化します。
JSONのフラット化・ネスト解除の仕組みと使い分け
変換ルールと、目的に応じた区切り文字・表記方法の選び方を解説します。
結論:フラット化は「表形式で扱うための変換」、ネスト解除は「元の構造に戻す変換」
JSONのフラット化は、階層構造を持つデータを1行1キーの表形式として扱えるようにするための変換です。スプレッドシートやCSV、BIツールなど「フラットな行と列」を前提とするツールにデータを渡す際に必要になります。
一方でネスト解除(復元)は、その逆方向の変換であり、フラットな形式で保存・受信したデータを、プログラムが扱いやすい元のオブジェクト・配列構造に戻す処理です。
キー表記ルール:ドット記法と角括弧記法の違い
ドット記法では、オブジェクトのプロパティも配列のインデックスも同じ区切り文字でつなげて`a.b.0.c`のように表現します。実装がシンプルな反面、配列とオブジェクトの境目が見た目では区別しにくいという特徴があります。
角括弧記法では、配列のインデックス部分だけを`a.b[0].c`のように角括弧で囲むため、どこが配列でどこがオブジェクトかを視覚的に区別しやすくなります。多くのプログラミング言語のオブジェクト記法に近い表記のため、開発者にとって読みやすい形式です。
ネスト解除時の配列判定の仕組み
ネスト解除では、各階層のキーを一度すべて文字列のプロパティ名として組み立てたうえで、あるオブジェクトの直下のキーがすべて `0, 1, 2...` という連番の数値である場合に限り、そのオブジェクトを配列に変換します。連番でない数値キーや、一部だけが数値のキーが混在する場合はオブジェクトのまま復元されるため、意図しない配列への変換を防ぐ設計になっています。
CSV・スプレッドシートへの活用方法
フラット化した結果を「テーブル表示」に切り替えると、キーのパスと値が1行ずつ並んだ表として表示されます。この表をCSV形式でコピーしてスプレッドシートに貼り付けることで、ネストされたJSONデータを通常の表計算データと同じように並び替え・フィルタリング・集計の対象にできます。
よくある失敗と対策
区切り文字の選択を誤り、ネスト化時に元の構造に戻らない
フラット化した際と異なる区切り文字でネスト解除を行ってしまい、キーが正しく分解されずに1階層のフラットなオブジェクトのまま復元されてしまう失敗です。
💡 対策・解決策を見る▼
キーに元々ドットを含むデータをフラット化し、復元時に構造が壊れる
「例:google.com」のようにドットを含む文字列がキー名に使われているデータをドット区切りでフラット化してしまい、復元時に意図しない階層として分解されてしまう失敗です。
💡 対策・解決策を見る▼
巨大なJSONを一度に変換しようとしてブラウザの動作が重くなる
数万キーを超えるような非常に大きなJSONファイルをそのまま貼り付けて変換しようとし、再帰処理の負荷でブラウザの応答が遅くなってしまう失敗です。
💡 対策・解決策を見る▼
配列とオブジェクトの判定を誤解し、復元後の型が期待と異なる
本来は文字列のIDとして扱いたいキー(例:`"01"`のようなゼロ埋めの数値文字列)が連番と判定され、意図せず配列に変換されてしまう失敗です。
💡 対策・解決策を見る▼
不正な形式のJSON(末尾カンマ・シングルクォート等)を貼り付けてエラーになる
JavaScriptのオブジェクトリテラルの記法(シングルクォートや末尾カンマ、キーの引用符省略)をそのままJSONとして貼り付けてしまい、解析エラーになってしまう失敗です。
💡 対策・解決策を見る▼
よくある質問(FAQ)
Q.JSONのフラット化とは何ですか、どのような場面で使いますか
A. フラット化とは、ネスト(入れ子)されたJSONオブジェクトを、`user.profile.name` のような1本のキーパスと値のペアの集合に変換する処理です。ログ解析やBIツールへの取り込み、スプレッドシートへの貼り付け、APIレスポンスのキー構造の一覧確認など、階層構造のままでは扱いにくいデータをフラットな表形式で扱いたい場面で使われます。
Q.ネスト解除(復元)はどのような仕組みで行われますか
A. フラット化されたキー(例:`user.tags[0]`)を区切り文字と角括弧の位置で分解し、それぞれのパスをたどりながらオブジェクトを再構築します。分解した各階層のキーがすべて `0, 1, 2...` のような連番の数値になっている場合は、そのオブジェクトを自動的に配列として復元します。
Q.区切り文字はどれを選べば良いですか
A. 特に指定がなければドット「.」が最も一般的で、多くのツールやライブラリと互換性があります。キーの中に元々ドットを含むデータを扱う場合は、アンダースコア「_」やスラッシュ「/」、または任意のカスタム文字列を選ぶことで、変換後のキーとデータ内の文字が混同するのを避けられます。
Q.配列はどのように表記されますか、ドット表記と角括弧表記の違いは何ですか
A. 角括弧表記では `tags[0]` のように配列のインデックスを `[ ]` で囲んで表します。ドット表記では `tags.0` のように区切り文字とインデックスをそのままつなげます。どちらの表記でもネスト解除時には自動的に配列として正しく復元されますが、他のツールに読み込ませる場合は、そのツールが対応している表記に合わせることをおすすめします。
Q.変換結果をCSVやExcelに取り込むことはできますか
A. はい。フラット化した結果は「テーブル表示」に切り替えたうえで、キーと値のペアをCSV形式でコピーできます。コピーした内容をスプレッドシートに貼り付けることで、ネストされたJSONデータを1行1キーの表形式として扱えます。
Q.入力したJSONデータは外部に送信されませんか
A. 送信されません。本ツールはすべての変換処理をブラウザ内のJavaScriptだけで完結させる設計です。入力したJSONがサーバーに送られたり保存されたりすることはなく、ページを閉じればデータは消去されます。
Q.巨大なJSONファイルでも変換できますか
A. 数百〜数千キー程度であれば問題なく変換できますが、数万キーを超えるような非常に大きなJSONの場合、ブラウザ内での再帰処理の負荷により変換や画面描画が遅くなることがあります。大きなファイルを扱う場合は、必要な部分だけを抜き出してから変換することをおすすめします。
あなたの声で、
このツールをより鋭く。
「こんな機能が欲しい」「ここを直してほしい」といったご意見や、新しいツールのリクエストを募集しています。エンジニアが直接目を通し、開発の参考にさせていただきます。