JSON→CSV変換
このツールでできること
誰かがAPIの応答を送ってきて、別の誰かが同じものを表で欲しがっている。仕事はそれだけです。しかし見た目より難しい。JSONは木で、表は格子だからです。このページは一方をもう一方へ変えるための3つの判断を下し、何をどう判断したかを見せます。
使い方
- 1 JSONを貼り付けるか、.jsonファイルをドロップします。
- 2 区切り文字を選びます。Excelで開くならセミコロンを。
- 3 変換を押し、結果をコピーするか.csvをダウンロードします。
木は格子に収まらないから、平らにする
入れ子のオブジェクトはドット付きの列になります。{"city":{"name":"London"}} は city.name という列です。これをしないと、変換ツールはセルに「[object Object]」と書きます。ファイルは開き、正しく見え、データの半分が消えています。単純な値の配列は1つのセルにまとめ、オブジェクトの配列は番号付きの列に分けます。
[
{
"name": "Ada",
"city": { "name": "London" },
"note": "Loves \"tea\""
},
{
"name": "Grace",
"city": { "name": "New York, NY" },
"tags": ["math", "navy"]
}
]
name,city.name,note,tags Ada,London,"Loves ""tea""", Grace,"New York, NY",,math; navy
列は最初の1件ではなく、全件から集める
実際のデータでは、レコードの項目がそろっていることはまずありません。任意の項目が40件目で初めて現れ、それ以前には一度も出てこない。最初の1件だけを読む変換ツールは、その列を黙って落とします。出力のどこにもその断りはありません。ここでは見出しは現れたすべてのキーの和集合で、初出の順に並びます。項目のないレコードは空欄になります。
迷子のコンマ1つで、列が全部ずれる
区切り文字・引用符・改行を含む値は、引用符で囲み、内側の引用符は二重ねにしなければなりません。CSVの規格がそう定めており、変換ツールが最もよく間違えるのもここです。コンマ入りの住所、改行入りのメモ、アポストロフィ付きの名前。この手順を飛ばしたファイルは、そのどれか1つで静かに壊れます。
ExcelはCSVを二通りのやり方で壊す
ひとつ。バイト順マークがないとUTF-8をローカルのコードページとして読み、アクセント付きや非ラテン文字が化けます。ふたつ。多くの地域ではコンマではなくセミコロンを期待し、各行をまるごと1列に押し込みます。どちらもここでは選択肢で、どちらも既定はオフです。規格はコンマかつマークなしと言っていますし、ファイルの行き先はたいてい表計算ではなくスクリプトだからです。