JSON Flatten / Unflatten
ネストしたJSONをドット記法のキーにフラット化したり、元のネスト構造に戻したりをブラウザ内で即座に。データは端末上に留まります。
JSONはブラウザ内でローカルにフラット化・unflattenされ、アップロードされることはありませんが、クリップボード履歴に残したくない秘密情報の貼り付けは避けてください。
先に整形したいですか?JSON整形ツールをお試しください。
JSON Flatten / Unflatten について
このJSON flattenツールは、ネストしたJSONオブジェクトを、キーがドット記法のパスになった1階層のマップに畳み込みます。たとえば {"a":{"b":1},"arr":[10,20]} は {"a.b":1,"arr.0":10,"arr.1":20} になります。unflattenに切り替えると、それらのフラットなパスから元のネスト構造を再構築します。フラットなキー/値の形は、差分を取ったり、.envや設定ファイルに保存したり、スプレッドシートの列に対応づけたり、パスをキーとするフォームライブラリに渡したりするのが簡単です。区切り文字はデフォルトのドットから好きなものに変更でき、配列のインデックスを arr.0 と読むか、ブラケット形式の arr[0] と読むかも選べます。オブジェクトのキー、配列、プリミティブ、null、空のコンテナはすべて扱え、往復変換はロスレスです。すべてはブラウザ内で完結するため、貼り付けたJSONはローカルで処理され、端末から外に出ることはありません。
機能
- ネストしたオブジェクトや配列を1階層のドット記法キーにフラット化
- フラットなパス/値のペアを元のネストJSONにunflatten
- 任意のキー区切り文字を選択 — デフォルトはドット (.)
- 配列にドットインデックス (arr.0) かブラケットインデックス (arr[0]) を選択
- ロスレスな往復変換:フラット化してunflattenすると同一のJSONに戻る
- プリミティブ・null・空のオブジェクトや配列もリーフ値として処理
- 入力に応じて解析エラーをインラインで示すライブ2ペイン表示
- 結果をコピー、または flat.json / nested.json としてダウンロード
JSON Flatten / Unflatten の使い方
- モード切り替えでFlattenかUnflattenを選びます。
- JSONを左側の入力パネルに貼り付けます。
- 区切り文字を設定し、フラット化の場合は必要に応じて配列キーの形式を選びます。
- 右側で変換後のJSONを確認し、コピーまたはダウンロードします。
例
入力
{
"user": { "name": "Ada", "roles": ["admin", "dev"] },
"active": true
}
出力
{
"user.name": "Ada",
"user.roles.0": "admin",
"user.roles.1": "dev",
"active": true
}
ネストしたオブジェクトや配列の項目は、インデックスで終わるドット記法のキーになります。
よくあるエラーとトラブルシューティング
- Unflattenがパス/値ペアのフラットなJSONオブジェクトを期待していると表示する。 — Unflattenには {"a.b":1} のような1階層のオブジェクトが必要です。ネストしたJSONから始めている場合はFlattenに切り替えてください。
- Unflattenが配列を期待した箇所でキー「0」「1」を持つオブジェクトを生成する。 — 配列のインデックスは整数のみのセグメントである必要があります。区切り文字がキーと異なる場合は、0や1がインデックスとして読まれるよう同じ区切り文字を設定してください。
- キー名の中にドットが含まれるなど、2つのキーが衝突してフラット化で値が失われる。 — キーの中に現れない区切り文字(/ や __ など)を選び、各パスが一意になるようにしてください。
- 入力にJSON解析エラーが表示され、出力が現れない。 — ハイライトされた構文を修正してください。JSONはダブルクォートのキーと文字列が必須で、末尾のカンマは置けません。「例を読み込む」で正しい出発点を試せます。
よくある質問
- 配列はどのようにフラット化されますか。
- 各配列項目はその項目のインデックスで終わる独自のキーになります。たとえば arr[10, 20] は {"arr.0":10,"arr.1":20} にフラット化されます。ブラケット形式に切り替えれば arr[0] や arr[1] になり、unflattenはどちらの形式も実際の配列に戻して読み取ります。
- キーの区切り文字は変更できますか。
- はい。区切り文字はデフォルトでドットですが、任意の文字や短い文字列(たとえば / や __)に設定できます。unflattenの際にはパスが正しく分割されるよう同じ区切り文字を使ってください。
- フラット化してからunflattenするのはロスレスですか。
- 整形式のJSONなら往復で同一のデータに戻ります。オブジェクト・配列・文字列・数値・真偽値・null・空のコンテナはすべて保持されます。唯一避けるべきは、キー名の中にもそのまま現れる区切り文字です。
- ドットとブラケットの配列キーは何が違いますか。
- インデックスの書き方だけが違います。ドット形式は arr.0、ブラケット形式は arr[0] となり、どちらも同じ配列位置を表します。unflattenはどちらの記法も理解するので、他のツールが期待する形式を選んでください。
- なぜJSONをフラット化するのですか。
- フラットなパス/値のマップは行ごとに差分を取りやすく、環境変数や設定ファイルに保存したり、スプレッドシートの列として並べたり、パスをキーとするフォームフィールドに紐づけたりするのが簡単です。unflattenを使えば必要なときにそのフラットな形をネストしたJSONに戻せます。
- 貼り付けたJSONはどこかにアップロードされますか。
- いいえ。フラット化とunflattenはすべてブラウザ内で動作するため、貼り付けたJSONは端末上でローカルに処理され、サーバーへ送信されることはありません。
関連ツール
すべての ArrayKit ツール