FileCrafty ファイルは端末の外に出ません

CSV JSON 変換ガイド|よくある落とし穴と対策

CSVは表計算ソフトの言葉、JSONはWebアプリやAPIの言葉です。商品リストの取り込み、データベースへの初期データ投入、スクリプトへの入力など、遅かれ早かれ一方から他方へデータを移す場面がやってきます。変換は簡単そうに見えますが、いくつかの細かな点で、データが正しく届くかどうかが決まります。

CSVがJSONになる仕組み

CSVファイルは表です。通常、1行目に列名が入っています。

id,name,city,zip
1,Ana,Vilnius,01100
2,Ben,Austin,73301

最も一般的なJSONの形はオブジェクトの配列です。1行につき1つのオブジェクトで、列名がキーになります。

[
  { "id": 1, "name": "Ana", "city": "Vilnius", "zip": "01100" },
  { "id": 2, "name": "Ben", "city": "Austin", "zip": "73301" }
]

CSVをJSONに変換するツールは、初期設定でこの形を出力します。

落とし穴1:数値に見えて数値ではないもの

idは数値になったのに、zipは文字列のままになっていることに注目してください。これは意図的なものです。郵便番号、電話番号、口座番号、商品コードは、0から始まることがよくあります。01100を数値として扱うと、黙って1100に変わってしまいます。何か月も気づかれないこともあるバグです。

FileCraftyは列ごとに型を判定します。列のすべての値がきれいな数値である場合にだけ、その列を数値にします。1つでも先頭にゼロが付いていたり数値でなかったりすれば、列全体が文字列のままになります。

落とし穴2:区切り文字の違い

「カンマ区切り」のファイルが、必ずしもカンマで区切られているとは限りません。ヨーロッパの多くの地域設定のExcelでは、カンマが小数点として使われるため、CSVをセミコロン区切りで保存します。タブ区切り(TSV)のファイルもよく見かけます。変換ツールは区切り文字を自動で判別するので、1;Ana;Vilniusも正しく分割されます。

落とし穴3:値の中のカンマや引用符

"Smith, John"のような値はカンマを含むため、CSVでは引用符で囲まれます。値の中の引用符は2つ重ねて書きます:"He said ""hi"""。単純にカンマで分割するだけの変換では、こうした行が壊れてしまいます。変換ツールに組み込まれているようなきちんとしたCSVパーサーなら、引用符で囲まれたフィールドや値の中のカンマ、さらにはセル内の改行まで正しく処理できます。

落とし穴4:空のセル

空のセルは「値なし」の意味にも「空の文字列」の意味にもなります。JSONではこの2つは別物で、nullと""です。取り込み先のシステムがどちらを想定しているか確認し、変換後にいくつかのレコードをチェックしましょう。

逆方向の変換

APIのレスポンスを表計算データに戻したいときは?JSONをCSVに変換なら、ネストしたオブジェクトをaddress.cityのような列に展開できます。JSONをExcelに変換なら.xlsxファイルを直接作れます。使う前にJSONをチェック・整形したいときは、JSON整形に貼り付けてください。構文エラーがあれば、その行と列を正確に示してくれます。

データは外部に送信されません

顧客リストやエクスポートしたデータには、個人情報が含まれていることがよくあります。変換ツールはすべてブラウザの中で動作するため、ファイルがサーバーにアップロードされることはありません。

まとめ

CSVをJSONに変換にファイルをドロップし、プレビューを確認してダウンロードするだけです。先頭のゼロ、セミコロン区切り、引用符内のカンマも自動で処理されます。

続きを読む

すべてのガイド