JSON→CSV変換
JSON配列をすぐに使えるCSVに変換します。
ブラウザ内で動作します。入力した内容はどこにも送信されません。
- ネストしたフィールドを展開
- すべてのキーが列になる
- Excelでもきれいに開ける
JSONをCSVに変換する方法
- オブジェクトのJSON配列を貼り付けるかアップロードします。
- 区切り文字とネストしたフィールドを展開するかどうかを選びます。
- CSVをコピーまたはダウンロードします。
ネストしたフィールドの展開のされ方
| JSON | CSVの列 | 値 |
|---|---|---|
| {"user":{"name":"Sam"}} | user.name | Sam |
| {"tags":["a","b"]} | tags | a, b |
| {"active":true} | active | true |
展開によって変わること
| 設定 | ネストしたオブジェクト | 値の配列 |
|---|---|---|
| 展開オン | フィールドごとに1列(address.city) | カンマでつなげて1つのセルに |
| 展開オフ | JSONテキストのまま1つのセルに | JSONテキストのまま1つのセルに |
きれいなCSVを書き出すコツ
- 列の順序はアルファベット順ではなく、全行の中でフィールドが最初に現れた順になります。
- スプレッドシートアプリですべてが1列に詰め込まれて表示される場合は、区切り文字をカンマではなくセミコロンにして再度ダウンロードしてください。
- 郵便番号"00501"のようにJSON文字列として保存されている値は、そのままの文字列としてCSVに書き出されます。数値として扱われるのは、すでにJSONの数値である値だけです。
CSV形式に関する注意点
- フィールドは、カンマ、クォート、改行を含む場合など必要なときだけクォートで囲まれ、RFC 4180の正しいCSVルールに従います。
- ダウンロードされるファイルはUTF-8のバイトオーダーマークから始まるため、Excelでアクセント記号が正しく開けます。マークなしのプレーンなUTF-8を想定するツールでも、それ以外の部分は問題なく読み取れます。
JSON→CSVのFAQ
どんな形のJSONを想定していますか?
[{"name":"Sam","age":30}]のようなオブジェクトの配列です。単一のオブジェクトは1行になり、配列の配列は1行ずつ書き出されます。
ネストしたオブジェクトや配列はどうなりますか?
展開がオンの場合、address.cityのようなネストしたフィールドはaddress.cityという名前の独立した列になります。単純な値のリストはカンマでつなげて1つのセルにまとめられます。
すべての行が同じフィールドを持つ必要がありますか?
いいえ。ヘッダーにはどれかの行にあるすべてのフィールドが最初に現れた順で含まれ、値がない場合は空欄になります。
ExcelでCSVを開くとアクセント記号が化けるのはなぜですか?
Excelは文字エンコーディングを推測します。ダウンロードされるファイルはUTF-8のマーカーから始まるため、アクセント記号や記号は正しく表示されます。Excelで小数点にカンマを使う設定の場合は、区切り文字にセミコロンを選んでください。
nullや欠けている値はどうなりますか?
nullの値や行にないフィールドは空のセルになります。他のどれかの行にそのフィールドがあれば、列自体はヘッダーに表示され続けます。
{"data": [...]}のようにオブジェクトで包まれたAPIレスポンスも変換できますか?
データフィールドの中身など、配列部分だけを貼り付けてください。このツールは、包んでいるオブジェクトではなく、トップレベルにオブジェクトの配列または単一のオブジェクトがあることを想定しています。
オブジェクトではなく、文字列や数値だけのJSON配列も変換できますか?
はい。各値が1列だけの1行になるため、["a", "b"]は1行に1つの値が入った2行のCSVになります。
CSVの改行コードはCRLFですか、LFですか?
行の間はCRLF(\r\n)です。これはRFC 4180のCSVの慣習が想定するもので、Excel自身が書き出す形式でもあります。