JSON を CSV に変換

この無料ツールは、JSON や JSON Lines を Excel や Google スプレッドシート用の CSV の表に変換します。レコードのリストを見つけ出し、入れ子のフィールドはドット区切りの名前の列に展開します。変換はブラウザー内で行われ、ファイルはアップロードされません。レコードの中にあるレコードのリストは JSON テキストとして1つのセルに書き込まれ、構文エラーのある JSON は読み込めません。

うまく変換できないファイルがありましたか? [email protected] までメールでお知らせください。小さなサンプルファイルを添えていただけると、修正しやすくなります。

要点

JSON を CSV の表に変換する理由

Web API、アプリ、ネットショップ、ログシステムから書き出したデータは、JSON で届くことがよくあります。プログラムには扱いやすくても、人が読むのは大変です。CSV の表なら Excel や Google スプレッドシートで開いて、並べ替え、フィルター、合計ができます。このツールは、ファイルの中からレコードのリストを見つけ出します。「data」「results」「items」のような入れ物の中にあっても見つけ、1レコードを1行、1フィールドを1列にします。入れ子のフィールドはドット区切りの名前の列になり、たとえば住所の中の市区町村は address.city という列になります。タグのようにレコード内にあるリストは JSON テキストとして、またはお好みでセミコロン区切りの値として書き込みます。レコードごとにフィールドがそろっている必要はありません。どこかに登場したフィールドはすべて、最初に現れた順に列になり、値のないところは空になります。1行に1レコードの JSON Lines ファイル(.jsonl、.ndjson)にも対応し、ダウンロードの前にプレビューで最初の数行を確認できます。

JSON を CSV に変換する方法

  1. .json、.jsonl、.ndjson ファイルをボックスにドロップするか、クリックして選びます。
  2. プレビューで列を確認し、データ内のリストの扱い方と CSV の形式を選びます。
  3. 「CSV に変換」をクリックし、ファイルをダウンロードします。

JSON を CSV にする前に知っておきたいこと

どのリストが表になるか

ファイル全体がリストなら、各項目が1行になります。オブジェクトの場合は、2階層下までで見つかった最も長いレコードのリストを使い、その名前(たとえば「data.items」)を概要に表示します。そうしたリストがないオブジェクトは、1行だけの表になります。

深く入れ子になったデータ

入れ子のオブジェクトは 10 階層まで展開され、それぞれの値に専用の列ができます。注文の明細行のように、レコードの中にほかのレコードのリストがある場合は、平らな表には適切な置き場所がないため、JSON テキストとして1つのセルに書き込みます。

無効な JSON

カンマや引用符が1つ欠けているだけで、ファイル全体が読み込めなくなります。ブラウザーが行と列を報告した場合は、ツールがエラーの場所をお知らせします。書き込み途中のログのように、途中で切れたファイルがよくある原因です。

GeoJSON は地図データ

GeoJSON ファイルには、属性に加えて座標も入っています。座標を X 列と Y 列、または WKT として書き出す「GeoJSON から CSV」ツールをお使いください。

ファイル形式について

JSON

JSON(JavaScript Object Notation)は、多くのウェブ API、アプリ、設定ファイルがデータに使うテキスト形式です。 値を入れ子にできるため、1件のレコードの中に別のレコードやリストを入れられます。これは平らな表ではできないことです。

  • オブジェクトは名前付きの値を、リストは順番に並んだ値を保持し、どちらも何階層でも入れ子にできます。
  • 値はテキスト、数値、true/false、null のいずれかなので、"0150" と書いた郵便番号はテキストのままです。
  • JSON Lines(.jsonl、.ndjson)は1行に1つの JSON オブジェクトを置く形式で、ログやデータのエクスポートでよく使われます。
  • テキストは常に Unicode で、通常は UTF-8 です。

CSV

CSV(comma-separated values)は、1行が1つの行で、セルをカンマ、セミコロン、タブで区切ったプレーンテキストの表です。 Excel、Google スプレッドシート、Numbers、あらゆるデータベース、ほとんどのプログラミング言語が読み書きできるため、 表をあるプログラムから別のプログラムへ移す定番の方法になっています。

  • 区切り文字に標準はありません。Excel は言語設定によってカンマまたはセミコロンを使います。
  • すべての値はテキストです。0800 を数値と見なすか郵便番号と見なすかは、読み込むプログラム次第です。
  • シート、数式、色、列幅はなく、値だけが入っています。
  • 文字コードはファイルに保存されません。安全なのは UTF-8 で、Excel が認識するには BOM が必要です。

よくある質問

JSON ファイルはアップロードされますか?

いいえ。ファイルの読み込みも変換も、お使いの端末上でブラウザーが行います。個人情報やアクセストークンを含む API のデータが、パソコンの外に出ることはありません。

Excel で特殊な文字は正しく表示されますか?

Excel 向けの形式のどちらかを選んでください。BOM が付くので、Excel がファイルを UTF-8 として読み込み、ø、é、ü のような文字や日本語も正しく表示されます。

true、false、null はどう書き込まれますか?

true と false はそのまま true、false という語として、null は空のセルとして書き込まれます。数値は JSON に書かれているとおりに書き込まれ、ヨーロッパ版 Excel の形式では小数点がカンマになります。

どのくらいの大きさのファイルまで扱えますか?

200 MB までです。ファイル全体をメモリに読み込むため、数百万件のレコードがあるファイルは、スマートフォンよりパソコンで変換するほうが確実です。