CSV JSON変換

ヘッダー行ありの場合、「name,age」「Ada,36」の2行のCSVは [{"name":"Ada","age":36}] になります。各行がヘッダー名をキーにしたオブジェクトに変わります。JSONからCSVへの逆変換もできます。

問題は解決しましたか?
Googleで優先表示

使い方

  1. 「CSV → JSON」か「JSON → CSV」を選び、入力欄にデータを貼り付けます。最初は形式がわかるようにサンプルが入っています。
  2. ファイルに合わせて区切り文字を選びます。カンマ、セミコロン、タブ、パイプから選べます。欧州のExcelから書き出したCSVはセミコロン区切りのことがよくあります。
  3. CSV → JSONでは「1行目をヘッダーにする」をオンにするとオブジェクトの配列、オフにすると配列の配列になります。「数値とtrue/falseを変換」にチェックを入れると、36が文字列"36"ではなく数値になります。
  4. 結果をコピーします。読み込めない入力のときは、どこが問題かをメッセージで知らせます。

計算方法

CSVの読み取りはRFC 4180に従います。ダブルクォートで囲んだフィールドにはカンマや改行を含められ、中のダブルクォートは2つ重ねて書きます。改行コードはLF、CRLF、CRのどれでもよく、先頭のBOMは無視し、空行は読み飛ばします。

ヘッダー行ありのときは1行目がキーになります。空のヘッダーはcolumn_N、重複したヘッダーにはname_2のような番号が付くので、値が上書きされることはありません。ヘッダーより短い行は足りないセルを空文字で埋め、長い行は余ったセルをcolumn_Nのキーで追加します。こうした行の数はステータス欄に表示します。

型の変換は任意で、控えめに行います。変換するのは42、-3.5、1e3のような素直な数値と、trueとfalseだけです。郵便番号の0123のような先頭ゼロ、+5のような符号付き、正確に表せない大きな整数は文字列のまま残します。

JSON → CSVは、オブジェクトの配列、配列の配列、値の配列、単一のオブジェクトを受け付けます。オブジェクトの場合、列は全キーを初出順に並べたものです。キーがない箇所やnullは空セル、入れ子のオブジェクトや配列はJSON文字列としてセルに入れます。区切り文字、ダブルクォート、改行を含むセルだけをクォートで囲みます。

CSVのセルがJSONでどうなるか

CSVのセル文字列のまま型変換オン
36"36"36
-3.5"-3.5"-3.5
true"true"true
02134"02134""02134"
""""
"a,b""a,b""a,b"

よくある質問

JSONで数値が文字列になってしまいます

CSVには型がなく、すべてのセルは文字列です。「数値とtrue/falseを変換」にチェックを入れると、数値と真偽値がJSONの数値・真偽値になります。郵便番号のような先頭ゼロの値はあえて文字列のまま残します。

セルの中にカンマや改行を入れられますか?

はい。"Smith, John"のようにダブルクォートで囲めば入れられます。セル内のダブルクォートは"He said ""hi"""のように2つ重ねます。読み込みも書き出しも対応しています。

セミコロンやタブ区切りのファイルはどうすれば?

区切り文字のリストから合うものを選んでください。小数点にカンマを使う地域のExcelはセミコロン区切りで書き出します。タブ区切りのファイルはTSVとも呼ばれます。

どんなJSONをCSVにできますか?

[{"a":1},{"a":2}]のようなオブジェクトの配列がいちばん向いています。配列の配列や値だけの配列も変換できます。CSVは平らな表なので、入れ子のオブジェクトはJSON文字列のまま1つのセルに入ります。

出力の改行コードはCRLFですか?

LFで出力します。Excelもテキストエディタも問題なく開けます。読み込みはLF、CRLF、CRのどれにも対応しています。

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

いいえ。変換はすべてブラウザ内で行うので、社内の表データも端末の外に出ません。