CSV JSON変換
ヘッダー行ありの場合、「name,age」「Ada,36」の2行のCSVは [{"name":"Ada","age":36}] になります。各行がヘッダー名をキーにしたオブジェクトに変わります。JSONからCSVへの逆変換もできます。
使い方
- 「CSV → JSON」か「JSON → CSV」を選び、入力欄にデータを貼り付けます。最初は形式がわかるようにサンプルが入っています。
- ファイルに合わせて区切り文字を選びます。カンマ、セミコロン、タブ、パイプから選べます。欧州のExcelから書き出したCSVはセミコロン区切りのことがよくあります。
- CSV → JSONでは「1行目をヘッダーにする」をオンにするとオブジェクトの配列、オフにすると配列の配列になります。「数値とtrue/falseを変換」にチェックを入れると、36が文字列"36"ではなく数値になります。
- 結果をコピーします。読み込めない入力のときは、どこが問題かをメッセージで知らせます。
計算方法
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のどれにも対応しています。
データはアップロードされますか?
いいえ。変換はすべてブラウザ内で行うので、社内の表データも端末の外に出ません。