JSON flatten / unflatten
keyのdotやbracketを曖昧にせず、JSON Pointer escapeとcontainer種別を持つentry配列へ双方向変換します。
separatorを含むkeyもround-trip
pathはRFC 6901形式で、`~`を`~0`、`/`を`~1`へescapeします。arrayとobjectは明示entryを持つためnumeric keyも曖昧になりません。
ツール本体
入力・操作・結果
上から入力し、必要な操作を行って、表示された結果と次の操作を確認してください。
入力データは原則ブラウザ内で処理し、URLやアクセス解析へ保存しません。ページを更新すると入力は失われます。機密情報は入力しないでください。
使い方
- flattenまたはunflattenを選びます。
- JSONを貼って変換します。
- round-trip後の構造を原文と比較します。
empty array/objectもcontainer entryとして残る独自のentry envelopeです。path表記自体はJSON Pointerです。
このツールを使う場面
- 確認できること
- nested JSONを曖昧でないpath entryへ展開し、元構造へ戻せます。
- 使う前に見るポイント
- 有効JSONまたは本toolが出力したentry配列を用意します。
- 結果を見たあとにやること
- round-trip equalityとslash・tilde・numeric keyを確認します。
つまずきやすいポイント
dot notationと思う
separator衝突を避けJSON Pointerを使います。
entry配列を通常JSONと混同
unflatten入力はpath・kind・valueの専用形式です。
境界値・事前チェック項目
empty container
object/array entryを残します。
root primitive
empty pathのvalue entryとして扱います。
よくあるミスと回避策
entryを手で欠落
parent container entryが必要です。
eval可能と思う
JSON.parseだけを使います。
FAQ
path notationは?
RFC 6901 JSON Pointerです。
keyにslashがあっても戻せますか?
はい。~1 escapeで区別します。
元JSONと完全にround-tripしますか?
有効JSON値、制限内、entryを変更しない条件で同じ構造へ戻します。
基本FAQ
入力データは外部へ送信されますか?
原則として送信されません。入力内容はブラウザ内で処理し、URLやアクセス解析へ保存しません。例外がある場合は各ツールページ内に明記しています。
入力内容は自動保存されますか?
原則として自動保存しません。ページを更新すると入力は失われます。コピーやダウンロードで保存する場合は、ご利用端末内に保存されます。
CSV・JSONの前処理・変換フロー
CSV崩れ確認・ゼロ落ち対策・相互変換・表確認をつなぐファミリーです。
関連ツール
同じ作業の前後で使うことがあるツールです。