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はローカルで処理され、端末から外に出ることはありません。

機能

JSON Flatten / Unflatten の使い方

  1. モード切り替えでFlattenかUnflattenを選びます。
  2. JSONを左側の入力パネルに貼り付けます。
  3. 区切り文字を設定し、フラット化の場合は必要に応じて配列キーの形式を選びます。
  4. 右側で変換後のJSONを確認し、コピーまたはダウンロードします。

入力

{
  "user": { "name": "Ada", "roles": ["admin", "dev"] },
  "active": true
}

出力

{
  "user.name": "Ada",
  "user.roles.0": "admin",
  "user.roles.1": "dev",
  "active": true
}

ネストしたオブジェクトや配列の項目は、インデックスで終わるドット記法のキーになります。

よくあるエラーとトラブルシューティング

よくある質問

配列はどのようにフラット化されますか。
各配列項目はその項目のインデックスで終わる独自のキーになります。たとえば 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 ツール