Yueseryueser.com

← ガイド一覧

JSON から CSV への変換ガイド:平坦なデータだけが向く

JSON は入れ子にでき、CSV はできません。変換前に「1行1件で、項目が揃っているか」を確認してください。そうでなければ何かが失われます。

ツールを開く:JSONからCSVへの変換

コードを書かない人に API のデータを渡す

運用が見たいのは注文一覧、経理が確認したいのは一括の記録、監視データはピボットテーブルにしたい。どれも CSV が求められます。JSON のまま渡すと括弧の壁を見せることになり、変換が一番安い橋渡しです。

向いている形は限られます。配列で、各要素がオブジェクトで、キーがほぼ同じもの。キーの差異が大きいほど表に穴が増えるので、その場合は変換ではなくデータ構造を見直す合図です。

見出し、欠けた項目、エスケープ

見出しは最初のオブジェクトのキーと順序で決まります。後続のオブジェクトにしかないキーは破棄され、欠けているキーは空欄になります。最初の要素が全項目を持つようにするか、先にキーの和集合を取ってください。

値にカンマ、二重引用符、改行があると、項目全体が引用符で囲まれ、内側の引用符は2つに重ねられます。これを省くと1つのカンマで列がずれます。見出しにカンマがある場合は処理されないため、事前に改名してください。

境界:入れ子と Excel の癖

入れ子のオブジェクトは文字列になり、配列はカンマで連結された1つの文字列になります。CSV に階層を置く場所はありません。構造が必要なら ID で関連付けた複数の表に分けるか、JSON のまま渡してください。

Excel でダブルクリックすると文字コードを推測するため、UTF-8 の中国語が化けたり、長い数値が指数表記になったり、先頭0の ID が0を失ったりします。テキストインポートで UTF-8 を指定するか、BOM 付きで出力してください。

よくある質問

オブジェクトという文字列が出るのはなぜですか

その項目がオブジェクトや入れ子構造で、CSV のセルにはテキストしか入らないからです。ドット付きのキーなどに平坦化してから書き出してください。

Excel で中国語が化けるのはなぜですか

ダブルクリックで開くと Excel が文字コードを推測し、UTF-8 を誤認することがあるためです。テキストインポートで UTF-8 を選ぶか、BOM 付きの CSV を生成してください。

列の順序は変えられますか

先頭オブジェクトのキー順になります。固定したい場合は、全項目を正しい順序で持つオブジェクトを配列の先頭に置くか、変換後に表計算ソフトで並べ替えてください。

関連ツール:JSONからCSVへの変換