CSV⇔JSON Lines(JSONL)変換

CSVファイルとJSON Lines(JSONL、1行1オブジェクトの形式)を相互に変換します。区切り文字を選べ、キーが揃っていない行も自動で吸収します。変換はブラウザ内で完結しサーバーには送信されません。

CSVの行とJSONLの行の対応

CSVの見出し行+データ行 name,age,city
Alice,30,Tokyo
変換後のJSONL(1行1オブジェクト) {"name": "Alice", "age": "30", "city": "Tokyo"}

見出し行の列名をキーにして、CSVの各データ行が1つのJSONオブジェクトになり、それが1行のJSONLとして出力されます。逆方向(JSONL→CSV)では、全行に登場したキーの和集合が見出し行になり、値がない行は空欄で埋められます。

Tips

  • JSONL→CSV変換では、行ごとにキーの数や順序が違っていても、全行に登場したキーの和集合を見出し行にして自動的に列を揃えます。
  • 見出しに空欄や重複がある列は、自動的に col{列番号} や 列名_2 というキーに置き換わり、値の欠落や上書きを防ぎます。
  • 値が数値・真偽値・ネストしたオブジェクトや配列であっても、CSVのセルには文字列として書き出されるため、変換後にExcel等でそのまま開けます。
  • 姉妹ツールの「CSV→JSON変換」「JSONL⇔JSON配列変換」と組み合わせると、CSV・JSON配列・JSONLの3形式を自由に行き来できます。
  • ダブルクォートで囲まれたセル内のカンマ・改行にも対応したRFC 4180準拠のパーサーを使うため、Excel等が出力した複雑なCSVも正しく変換できます。

よくある質問

CSVは表計算ソフトで開いて集計・確認するのに適しており、JSONLは1行ずつ独立してストリーム処理できるため機械学習のデータセットやログ収集ツールへの取り込みに向いています。本ツールはこの2形式を行き来する変換作業を仲介します。

見出し行を除いた1データ行が、JSONLの1行(1つのJSONオブジェクト)に対応します。見出し行の列名がそのままJSONオブジェクトのキーになります。

はい。JSONL→CSV変換では、全行に登場したキーをすべて集めた和集合を見出し行にします。特定の行に存在しないキーの値は、CSV上では空欄として出力されます。

はい。「区切り文字」で「タブ」を選択すれば、CSVの代わりにTSV形式での入出力にそのまま対応します。

いいえ。変換処理はすべてブラウザ内のJavaScriptで行われ、入力内容がサーバーに送信されることはありません。
ツールくん

余談ですが ― JSON Linesが機械学習とログ処理の「共通語」になった理由

JSON Lines(JSONL)が広く使われるようになった大きなきっかけの1つが、機械学習のデータセット配布です。大規模言語モデルのファインチューニング用データは数百万件規模の「入力と出力のペア」で構成されることが多く、これを1つのJSON配列にまとめてしまうと、ファイル全体をメモリに読み込んでパースし終えるまで1件も取り出せません。JSONLなら1行=1件のレコードとして独立して読み書きできるため、巨大なデータセットでもストリーム処理が可能になります。

ログ処理の世界でもJSONLは相性がよい形式です。ElasticsearchやLogstashをはじめとするログ収集基盤は、アプリケーションが1件ずつ出力するイベントを逐次的に取り込む設計になっており、JSON配列のように「全体が1つの構造」である形式よりも、1行ごとに独立して追記・パースできるJSONLのほうが自然に噛み合います。

一方でCSVは今なお、業務データの受け渡しや表計算ソフトでの確認において根強い需要があります。本ツールはCSVとJSONLという性質の異なる2形式を直接橋渡しすることで、「CSVで受け取ったデータをそのまま機械学習パイプラインに投入したい」「JSONLで出力されたログをExcelで確認したい」といった、両方の世界を行き来する場面をワンステップで完結させます。

→ すべての余談を見る