本文へスキップ
kitto works
ツール一覧

CSV⇔JSON変換

CSVとJSONを相互に変換します。列見出しをドット記法(例: user.name)にすると、ネストしたオブジェクトや配列にも対応します。入力したデータはブラウザの中だけで処理され、どこにも送信されません。

変換の方向

入力したデータはブラウザの中だけで処理され、どこにも送信されません。

変換元のデータを入力して「変換する」を押してください。

使い方

  1. 「CSV → JSON」か「JSON → CSV」を選びます。
  2. 変換元のテキストエリアにデータを入力(または貼り付け)します。ネストしたJSONにしたい場合は、CSVの列見出しをドット記法(例: user.name)にします。
  3. 「変換する」を押すと結果が表示されます。「結果をコピー」でクリップボードにコピーできます。

計算・変換の根拠

変換のルール

CSV → JSON

1行目をヘッダー行(キー名)として扱い、2行目以降の各行を1つのJSONオブジェクトに変換します。引用符で囲まれたフィールド内のカンマや改行は、正しく1つの値として扱われます(未対応の自前実装にありがちな誤変換を避けるため、実績のあるCSVパーサライブラリを使用しています)。

列見出しをドット記法(user.name のように . で区切る)にすると、ネストしたオブジェクト({ "user": { "name": ... } })として展開されます。列見出しの末尾が 0, 1, 2... のような連番になっている場合(例: tags.0, tags.1)は、配列として展開されます。

値はすべて文字列として出力されます(数値や真偽値への自動変換は行いません。「1」という文字列を数値の1にすべきか文字列のままにすべきかは元データによって意図が異なるため、変換せずそのまま保持する方針にしています)。

JSON → CSV

JSONはオブジェクトの配列である必要があります(単一のオブジェクトを渡した場合は1行のCSVとして扱います)。各オブジェクトのキーを再帰的に展開し、ネストしたオブジェクトは 親キー.子キー の列見出しに、配列は 親キー.0, 親キー.1... の列見出しに変換します。

オブジェクトによってキーの構成が異なる場合、全オブジェクトに登場したキーの和集合を列見出しにし、値がないセルは空欄にします。値にカンマや改行が含まれる場合は自動的に引用符で囲みます。

上限について

一度に処理できるのは5,000,000文字までです。これを超える入力は変換せずエラーを表示します(大きなデータを一部だけ変換すると壊れた出力になってしまうため、上限を超えた場合は処理を行いません)。

よくある質問

入力したCSVやJSONは送信されますか?

送信されません。変換はすべてお使いのブラウザの中だけで行われ、外部への通信は一切発生しません。

ネストしたJSONオブジェクトをCSVで扱うにはどうすればいいですか?

CSVの列見出しをドット記法(例: user.name, user.age)にしてください。CSV→JSON変換時に自動的にネストしたオブジェクトへ展開されます。JSON→CSV変換では、逆にネストしたオブジェクトが自動的にドット記法の列見出しに展開されます。

数値や真偽値はCSVでもJSONでも同じ型として扱われますか?

CSV→JSON変換では、値は常に文字列として出力されます(例: 30 ではなく "30")。数値や真偽値への自動変換は行っていません。元のCSVには型情報がないため、誤変換を避けるための仕様です。

行によって列の数が違うCSVを変換するとどうなりますか?

エラーになります。ヘッダー行の列数とデータ行の列数が一致していないことを示すメッセージが表示されます。CSVの区切り文字や引用符の対応を確認してください。

とても大きなCSVやJSONファイルも変換できますか?

5,000,000文字までは処理できます。それを超える場合は、データを一部だけ変換すると壊れた出力になってしまうため、あえて変換せずエラーを表示します。ファイルを分割してからお試しください。