データ · 2分で読めます ·
フィールドをひとつも失わずに JSON を CSV へ
ネストしたキー、省略可能なフィールド、文字列中のカンマ。4Dev が乱雑な JSON をスプレッドシート向けの CSV に平坦化するしくみ。

スプレッドシートは平らで、JSON はそうではありません。JSON から CSV への変換では、ネストしたオブジェクト、配列、一部のレコードにしかないキーをどう扱うかを決める必要があります。4Dev の変換ツールが実際に行うのは次のとおりです。
すべてのキーに列ができる
見出し行は、最初のレコードだけでなく、すべてのオブジェクトのキーから、初めて現れた順に作られます。キーが欠けているレコードには空のセルが入るので、列がずれることも、省略可能なフィールドが消えることもありません。
[{"id":1,"name":"Ada"},
{"id":2,"name":"Alan","note":"optional"}]
id,name,note
1,Ada,
2,Alan,optional
ネストしたオブジェクトはアンダースコア区切りの列に
オブジェクトはキーをアンダースコアでつないで平坦化されるため、{"address":{"city":"Lisbon"}} は address_city という列になります。単純な値の配列は 1 つのセルに入り("admin, dev")、オブジェクトの配列はそのセルに JSON テキストとして残るので、何も捨てられません。
カンマや引用符は自動でエスケープ
カンマ、ダブルクォート、改行を含む値はダブルクォートで囲まれ、中の引用符は二重になります。Excel や Google スプレッドシートが想定する標準的な CSV のルールです。
2,"Alan, T.","says ""hi"""