ネストされたJSONをCSV用にフラット化する
深くネストされたJSONオブジェクトをフラットなCSV行に変換する方法。ドット表記キー、配列処理戦略、深度制限オプションを解説。
Advanced Conversion
詳細な説明
ネストされたJSONのCSV用フラット化
CSVは本質的にフラットな形式で、各セルには単一の値が格納されます。JSONにネストされたオブジェクトや配列がある場合、テーブル形式の行に変換するためのフラット化戦略が必要です。
フラット化戦略
1. ドット表記キー
最も一般的なアプローチ。ネストされたオブジェクトのキーはドットセパレータで結合されます:
address.street→{ address: { street: "..." } }meta.created.date→ より深いネスト
配列の処理
配列はCSVにはマルチ値セルの概念がないため、特別な課題を提示します:
| 戦略 | ["admin", "active"]の出力 |
|---|---|
| JSON文字列化 | "[\"admin\",\"active\"]" |
| セパレータで結合 | "admin;active" |
| カラムに展開 | tags.0,tags.1 → admin,active |
| 配列要素ごとに1行 | 各アイテムについて親行を複製 |
3. 深度制限
深くネストされた構造の場合、最大フラット化深度を設定できます。その深度を超えると値はJSON文字列化されます。
フラット化が適さない場合
一部のJSON構造はCSVにうまくマッピングできません。深い再帰ツリー、異種混合の配列、ポリモーフィックなオブジェクトは、フラットCSVに強制するのではなく、別のエクスポート形式(JSON Lines、Parquetなど)が必要になる場合があります。
ユースケース
各注文にネストされた顧客情報、配送先住所、明細行が含まれるECサイトのAPIから注文データをエクスポートし、BI用のCSVインポートのためにフラット化する場合に使用します。