CSVをJSONに変換する方法
- CSV → JSONを選んだままデータを貼り付けます。Excel、Googleスプレッドシート、データベースから書き出したファイルのほか、スプレッドシートから直接コピーしたセル(タブ区切りで貼り付けられます)にも対応します。
- 区切り文字は自動判別のままにするか、カンマ、セミコロン、タブ、パイプから選びます。
- 1行目を見出しとして使うをオンにすると、各行が列名をキーとするオブジェクトになります。オフにすると配列の配列になります。
- 数値とtrue/falseを変換は、数字の形をしたテキストをJSONの数値に、
true、false、nullをJSONの値に変えます。オフにすると、すべての値が文字列のままになります。 - 結果をコピーするか、ダウンロードで
data.jsonとして保存します。変換した行数はステータス行に表示されます。
サンプルを押すと、選んでいる方向に合ったサンプルデータが入り、引用符の扱いをすぐに確認できます。
JSONをCSVに変換する方法
JSON → CSVを選び、オブジェクトの配列を貼り付けます。どれかのオブジェクトにあるキーはすべて列になり、キーが最初に現れた順に並びます。そのため、項目が欠けていたり多かったりするレコードでも列がそろい、ない値は空欄になります。入れ子のオブジェクトや配列はJSONテキストとして1つのセルに入り、null は空のセルになります。配列の配列は見出しなしで1行ずつそのまま書き出され、オブジェクトが1つだけなら見出しと1行になります。区切り文字が自動判別のときはカンマで出力します。
ダウンロードでは、先頭にUTF-8のバイトオーダーマーク(BOM)を付けて data.csv として保存します。ExcelはこのマークでUTF-8だと判断するので、日本語やアクセント付きの文字が文字化けせずに開けます。
CSVの引用符ルールのまとめ
CSVには唯一の公式仕様があるわけではありませんが、広く使われている形式をRFC 4180が説明しており、このツールもそれに従っています。
- 区切り文字、ダブルクォート、改行を含むフィールドは、ダブルクォートで囲みます:
"Paris, France"。 - そうしたフィールド内のダブルクォートは2つ重ねて書きます:
"Carol ""CJ"" Jones"はCarol "CJ" Jonesを意味します。 - 引用符で囲んだフィールドは複数行にまたがることができ、その改行は値の一部になります。
- CSVを書き出すとき、このツールは前後に空白がある値も引用符で囲み、ファイルを開くソフトに空白を削られないようにします。
変換例
このページのCSVのサンプルは次のとおりです。
name,city,age,member |
Alice,"Paris, France",34,true |
Bob,Tokyo,28,false |
"Carol ""CJ"" Jones",São Paulo,41,true |
変換すると3つのオブジェクトになります。1つ目は {"name": "Alice", "city": "Paris, France", "age": 34, "member": true} です。引用符の中のカンマは値に残り、34は数値、trueは真偽値になります。3行目の名前は Carol "CJ" Jones となり、JSONでは "Carol \"CJ\" Jones" と表記されます。
逆方向のJSONのサンプルでは、Bobにだけ tags 配列があります。結果は見出し name,city,age,tags、Aliceの空の tags 欄、そしてBobの "[""new""]" です。配列をJSONテキストとして入れ、引用符を含むので全体を引用符で囲んでいます。
自動判別と型変換の決まり
- 区切り文字:1行目に含まれるカンマ、セミコロン、タブ、パイプを数え、最も多いものを採用します。見出しの引用符内にカンマがある場合や、1行目が特殊な場合は、区切り文字を手動で選んでください。
- 数値:
34、-2.5、1e3のような素直な数値だけを変換します。先頭が0の値(02134)、プラス記号、桁区切り、小数点のカンマ(19,90)を含む値はテキストのままなので、郵便番号、電話番号、ヨーロッパ式の価格が壊れません。 - 真偽値とnull:小文字の
true、false、nullだけを変換します。Excelから来たTRUEは文字列のままです。 - 見出し:空の見出しセルには位置に応じて
column1、column2などの名前が付き、同じ名前が重なると_2を付けて、どの列も失われないようにします。
注意したい点
- 長いID。JSONの数値は15〜16桁を超えると精度が落ち、
12345678901234567890は12345678901234567000になってしまいます。長い口座番号、注文番号、バーコードの列があるなら、型変換をオフにしてください。 - 列数がそろわない行。見出しを使う場合、セルが足りない行は欠けた列が空文字列になり、最後の見出し列を超えるセルは切り捨てられます。データが消えたように見えたら、値の中に引用符で囲まれていないカンマがないか確認してください。
- Excel向けのセミコロン区切り。ドイツやフランスなど小数点にカンマを使う地域のExcelは、セミコロン区切りのファイルを想定しています。そうした環境で開くファイルなら、JSONからCSVに変換する前にセミコロンを選んでください。
- 空行は読み飛ばし、Windows(CR LF)とUnix(LF)の改行コードをどちらも解釈します。
よくある質問
出力されたJSONはAPIやコードでそのまま使えますか?
はい。2スペースでインデントされた標準のJSONです。1行に圧縮したり、手で編集したファイルを検証したりするには、JSON整形に貼り付けてください。
Excelファイルを直接変換できますか?
.xlsxファイルそのものはできませんが、ExcelやGoogleスプレッドシートでセルを選んでコピーし、ここに貼り付ければ変換できます。タブ区切りのテキストは自動で判別されます。
データはどこかに送られますか?
どこにも送られません。解析も変換もページの中で完結するので、顧客や社員の情報を含む表を扱うときにも安心です。
列の順番が変わってしまうのはなぜですか?
JSON → CSVでは、オブジェクト全体でキーが最初に現れた順に列が並びます。先頭に置きたいキーを最初のオブジェクトに先に書くか、あとでスプレッドシート上で列を並べ替えてください。