100% ローカル — データがブラウザの外に出ることはありません

JSONをCSVに変換|Excel や Google スプレッドシートで開く

JSONのオブジェクト配列を表に変換します。キーがそのまま見出し行になり、Excel や Numbers、Google スプレッドシートで開いてすぐ並べ替えや集計ができます。

高速 プライベート Cookieゼロ
区切り文字

JSON 入力

CSV 出力

このツールの動作

オブジェクトの配列が行になり、キーが見出しになります。

[
  { "name": "Ada", "born": 1815 },
  { "name": "Alan", "born": 1912 }
]
name,born
Ada,1815
Alan,1912

根はオブジェクトの配列である必要があります。表とは記録の並びであり、単体のオブジェクトに行はありません。一行のつもりなら [ ] で包んでください。

長い識別子は桁を保つ

[{ "id": 12345678901234567890 }]

は二十桁のまま出ます。JSON をまず JavaScript の値へ解析する変換器は、十五桁ほどを超えると黙って丸めます。しかも、元の行にはもう対応しない数値へと。

三つの曖昧さを名指しする

null と空文字列は同じセルになる。 null も "" も区切りの間に何も置かず、後から読む側には区別がつきません。その違いが大事なら、CSV は行き先として適しません。

入れ子の値はセルの中の JSON になる。 セルが持てるのは一つの値で、キーが持っているのは部分木です。親.子 という勝手な列に散らせば、受け取る側が同意していない命名規約を押し付けることになります。

不揃いな記録は和集合になる。 見出しは現れたすべてのキーを初出順に並べたもので、欠けている記録には空のセルが入ります。列を捨てても行を捨てても、きれいな長方形のためにデータを失います。

Excel 向けの設定

Excel は素の UTF-8 の CSV を確実には読みません。バイト列から符号化を推測し、たいていはシステムの旧来のコードページを選びます。café が café になるのはこのためです。

Excel 向けの設定は、Excel が理解する二つのものを書きます。バイト順マークと、区切り文字を告げる先頭の sep=, 行です。どちらも標準の CSV ではありません。sep= に至っては Microsoft の拡張で、ほかの読み手はこれをデータの一行目として表示します。だからこそ、既定ではなく、必要なときに入れる設定にしてあります。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

なぜ Excel でアクセント付きの文字が化けるのですか。
Excel はバイト列から符号化を推測し、手がかりがなければ UTF-8 ではなく利用者のシステムの旧来のコードページを選ぶからです。Excel 向けの設定は、バイト順マークと `sep=` の行を書きます。この二つが符号化と区切り文字の両方を Excel に伝えます。標準の CSV ではないので、既定ではなく設定にしてあります。
CSV は null と空文字列を区別できますか。
できません。どの CSV にもできません。`{"note": null}` と `{"note": ""}` はどちらも空のセルになり、読み返してもどちらだったかは分かりません。その違いが大事なら、CSV は行き先として適しません。あるいは変換の前に、たとえば `NULL` という文字列のような、自分たちの約束事を入れてください。
記録ごとにキーが違います。どうなりますか。
見出しは現れたすべてのキーの和集合で、順序は初出順です。欠けている記録には空のセルが入ります。不揃いだからといって捨てるものはありません。一部の行だけが任意の欄を持つ書き出しは普通のことで、誤りではありません。

関連ツール