UTILS.
100% ブラウザ内で完結
⊞}

JSON フラット化 / 復元

ネストした JSON をドット記法のキーにフラット化、またはフラットなキーからネストしたオブジェクトを再構築します。

— ここに結果が表示されます —

このツールについて

JSON Flatten / Unflatten は、ネストされた JSON をドット記法のキーからなる単一レベルのマップに変換し、そのフラットなキーからネスト構造を再構築する無料のブラウザ内ツールです。JSON を貼り付けて方向を選びます。「Flatten」はすべてのパスを1つのフラットなオブジェクトにまとめ(例:user.name や user.roles.0)、「Unflatten」はドット付きのキーをネストされたオブジェクトや配列に展開し直します。

どちらの方向でも、入力はブラウザ自身の JSON パーサーで解析され、結果はスペース2つのインデントで整形出力されます。オブジェクトと配列は再帰的にたどられ、配列要素はパス内で数値インデックスを保ち、リーフ値(文字列・数値・真偽値・null・空のオブジェクトや配列)はそのまま保持されます。無効な JSON は出力の代わりにインラインエラーを表示し、コピーボタンで結果をクリップボードに置けます。

すべては JavaScript でローカルに動作します。アップロード・アカウント・追跡はなく、オフラインでも動作します。フラット化は、設定を環境変数や i18n メッセージファイルのようなフラットなキー/値のペアに変えたり、深くネストされたペイロードの差分を取ったり、API レスポンスを整形し直したりするのに便利で、アンフラット化は同じマッピングを逆にたどります。

よくある質問

配列はどう扱われますか?
配列要素は items.0.name のようにキー内で数値インデックスを使います。アンフラット化の際、すべて数字からなるパスセグメントは配列インデックスとして扱われるため、その部分は配列として再構築されます。
データはアップロードされますか?
いいえ。解析と変換はすべてブラウザの JavaScript 内で実行され、サーバーには何も送信されず、オフラインでも動作し続けます。
空のオブジェクトや配列はどうなりますか?
それらはリーフ値として扱われ、そのキーの位置でそのまま保持されます。そのため、空の {} や [] はより深いキーに展開されることなく、フラット化しても変わらず残ります。
フラット化してからアンフラット化すると、常に元の JSON に戻りますか?
ほぼ常にそうですが、2つのケースは異なります。すでにドットを含むキーはアンフラット化時に余分なネストに分割され、数字だけからなるオブジェクトのキーはオブジェクトのキーではなく配列インデックスとして再構築されます。

その他のツール