ブログ
日本語

JSON CSV 変換 — JSON配列をCSVにオンライン変換

オブジェクトのJSON配列をCSVに変換(ネスト展開・区切り文字・Excel用BOM)

ブラウザー内で処理・アップロード不要

CSV結果

JSON→CSV変換とは

開発ではJSON配列をよく扱いますが、スプレッドシートで見るならCSVのほうが便利です。このツールは[{...}, {...}]の形のJSONを、ヘッダー行付きのCSVに変換します。入力を編集するとすぐに結果が更新され、ファイルとしてダウンロードすることもできます。

使い方

  1. 入力欄にオブジェクトの配列を貼り付けます。オブジェクトが1つだけなら1行の表になります。
  2. 区切り文字をカンマ、セミコロン、タブ、パイプから選びます。地域によってはExcelがセミコロン区切りを前提にしていることがあります。
  3. Excelで開く場合は、UTF-8 BOMをオンのままにしてCSVをダウンロードを押します。
  4. 別のアプリに貼り付けるなら、コピーボタンを使います。

仕組み

  • 形式は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は区別できません。

データはアップロードされますか?

いいえ。変換はすべてブラウザー内で行われ、データが送信・保存されることはありません。

ほしいツールはありますか?