JSON CSV 変換 — JSON配列をCSVにオンライン変換
オブジェクトのJSON配列をCSVに変換(ネスト展開・区切り文字・Excel用BOM)
ブラウザー内で処理・アップロード不要
JSON→CSV変換とは
開発ではJSON配列をよく扱いますが、スプレッドシートで見るならCSVのほうが便利です。このツールは[{...}, {...}]の形のJSONを、ヘッダー行付きのCSVに変換します。入力を編集するとすぐに結果が更新され、ファイルとしてダウンロードすることもできます。
使い方
- 入力欄にオブジェクトの配列を貼り付けます。オブジェクトが1つだけなら1行の表になります。
- 区切り文字をカンマ、セミコロン、タブ、パイプから選びます。地域によってはExcelがセミコロン区切りを前提にしていることがあります。
- Excelで開く場合は、UTF-8 BOMをオンのままにしてCSVをダウンロードを押します。
- 別のアプリに貼り付けるなら、コピーボタンを使います。
仕組み
-
形式はRFC 4180に従います。区切り文字・ダブルクォート・改行を含む値はダブルクォートで囲み、中のダブルクォートは2つ重ねます。改行コードはCRLFです。
-
1行目はヘッダーです。すべての行からキーを集め、最初に出てきた順に列を並べます。
-
ネストしたオブジェクトはドット記法(
a.b.c)で展開します。配列と空のオブジェクトは["a","b"]のようなJSON文字列として1つのセルに入ります。キー自体にドットが含まれていると、逆変換のときに区別できません。 -
nullは空のセルに、真偽値はtrueまたはfalseに、数値はJavaScriptの表記になります。9007199254740991を超える整数はJSONを読み込んだ時点で丸められるため、警告を表示します。 -
配列の要素がオブジェクトでない場合(数値や文字列など)は、
valueという1つの列になります。 -
ファイルはUTF-8で、BOMはダウンロードしたファイルにだけ付きます。
-
往復変換の注意:
nullは空のセルになるため、CSV上では空文字列と区別できません。またCSVには型がないので、型変換をオンにして戻すと、"123"のような数字の文字列は数値の123になります。 -
Excelの数式インジェクション:
=、+、-、@で始まるセルは、Excelで開いたときに数式として実行されることがあります。信頼できないデータを扱う場合は、こうした値の前に ’ を付けるオプションをオンにしてください。セルは文字列として表示されます(CSVから開いた場合、アポストロフィはセルに見えたまま残ります)。-12.5のような普通の負の数は数値のままです。初期設定ではオフなので、指定しない限り値が書き換えられることはありません。
例
入力:
[{"name":"山田太郎","address":{"city":"Tokyo"},"tags":["a","b"]},{"name":"Bob"}]
結果:
name,address.city,tags
山田太郎,Tokyo,"[""a"",""b""]"
Bob,,
よくある質問
CSVをExcelで開くと文字化けします。どうすればいいですか?
ExcelはBOMのないUTF-8のCSVを、日本語環境ならShift_JISのような従来の文字コードとして読むことが多く、日本語やアクセント付きの文字が化けてしまいます。「UTF-8 BOMを付ける」をオンにしたまま「CSVをダウンロード」を使うと、ファイルの先頭にBOM(EF BB BF)が付き、ExcelがUTF-8として読み込みます。コピーボタンではBOMは付きません。
ネストしたJSONはどのように表になりますか?
オブジェクトの中のオブジェクトは、address.cityのようにドットでつないだ列名になります。配列はJSON文字列として1つのセルに入ります。行ごとにキーが違う場合は、最初に出てきた順に列をまとめ、値のないセルは空欄にします。
CSVをJSONに戻せますか?
CSV JSON 変換ツールで数値変換とネストの復元をオンにすると、元にかなり近いJSONに戻せます。ただしCSVには型の情報がないため、文字列の"123"と数値の123は区別できません。
データはアップロードされますか?
いいえ。変換はすべてブラウザー内で行われ、データが送信・保存されることはありません。