FORMAT COMPARISON
JSON Lines vs CSV
JSON Linesは1行ごとに独立したJSON値を置くテキスト慣習、CSVは区切り文字で列を並べる表形式です。JSON Linesはレコードごとの異なる構造やネストした値を表しやすく、CSVは同じ列を持つ表データの受け渡しに向きます。
JSON LinesとCSV、どちらを選ぶ?
同じ列構成の表を表計算ソフトやデータベース間で交換するならCSV、ネストした値やレコード単位のストリーム処理が必要ならJSON Linesを検討します。文字コード、区切り、改行、スキーマ、表計算ソフトの自動変換を受信側と確認してください。
JSON Lines向き
行単位で処理するログや記録・JSONレコードのストリーミング交換
- データを1行ずつ読み書きする
- テキスト処理ツールで追記・連結する
CSV向き
表データ交換
- 単一シートの表をアプリ間で受け渡す用途
- 書式を必要としない集計前のデータ
基本情報を比較
JSON LinesとCSVの主な違いを確認できます。
| 項目 | JSON Lines | CSV |
|---|---|---|
| 拡張子 | .jsonl、.ndjson | .csv |
| MIME Type | application/jsonl | text/csv |
| 主な用途 | 行単位で処理するログや記録・JSONレコードのストリーミング交換 | 表データ交換 |
| 圧縮 | none | 該当なし |
| 開く方法 | テキストエディタやJSON Lines対応ツールで開きます。1行ずつJSONとして検証すると、どのレコードに構文エラーがあるか確認しやすくなります。 | 表計算ソフトではインポート時に文字コードと区切り文字を指定し、テキストエディタでは実際の値を確認します。先頭ゼロ、日付に見える値、長い数値は自動変換されないか確認し、必要な列を文字列として扱います。 |
| 書き出し・変換 | JSON配列へ変換するときは全行を配列要素にまとめ、JSON Linesへ戻すときは各要素を1行ずつ書き出します。大量データではメモリ使用量に注意します。 | XLSXからCSVへ書き出すと、通常は選んだ一つのシートの値だけになります。数式、書式、複数シート、グラフは別途保持します。 |
用途別の選び方
作りたいものや使う場面から選べます。
データを1行ずつ読み書きする
行単位で処理するログや記録・JSONレコードのストリーミング交換
JSON Lines向きテキスト処理ツールで追記・連結する
行単位で処理するログや記録・JSONレコードのストリーミング交換
JSON Lines向き単一シートの表をアプリ間で受け渡す用途
表データ交換
CSV向き書式を必要としない集計前のデータ
表データ交換
CSV向き確認ポイント 1
JSON Linesは各行に1つのJSON値を格納し、オブジェクトのほか配列・文字列・数値なども表せます。CSVは行とフィールドからなる表で、各列の意味や型は別途合意することが多く、標準CSVに共通の型スキーマはありません。
使い分け確認ポイント 2
JSONの値はネストしたオブジェクトや配列を含められます。CSVは通常、行ごとに同じ列構成を期待するため、ネスト構造や可変フィールドは独自のエンコードや別スキーマなしには扱いにくくなります。
使い分け選ぶ理由を詳しく
- 両方ともテキストで逐次処理できますが、CSVでは引用符・区切り文字・改行を含むフィールドの解析規則が必要です。CSVからJSON Linesへ変換するときはヘッダー、列型、欠損値、空文字、日付、先頭ゼロをどう対応させるか決め、往復後に値を検証します。