Format Atlas

FORMAT COMPARISON

JSON Lines vs JSON

JSON Lines(newline-delimited JSON)はUTF-8テキストで、各行に独立した有効なJSON値を1つ置くレコード指向の慣習です。通常のJSONは1つのJSONテキストとして値全体を表すため、JSON Linesは複数レコードの逐次処理や追記に向きます。

最終確認: 2026-09-27

JSON LinesとJSON、どちらを選ぶ?

ログやイベントを1行ずつ処理・追加し、パイプで流したい場合はJSON Linesを検討します。単一の設定文書やネストした配列・オブジェクト全体を扱う場合は通常のJSONを使います。受信側がJSON Linesを理解するか、レコード区切り・空行・最後の改行をどう扱うか確認してください。

JSON Lines向き

行単位で処理するログや記録・JSONレコードのストリーミング交換

  • データを1行ずつ読み書きする
  • テキスト処理ツールで追記・連結する

JSON向き

Web API・設定ファイル・データ交換

  • 構造化データの受け渡し

基本情報を比較

JSON LinesとJSONの主な違いを確認できます。

項目JSON LinesJSON
拡張子.jsonl、.ndjson.json
MIME Typeapplication/jsonlapplication/json
主な用途行単位で処理するログや記録・JSONレコードのストリーミング交換Web API・設定ファイル・データ交換
圧縮none該当なし
開く方法テキストエディタやJSON Lines対応ツールで開きます。1行ずつJSONとして検証すると、どのレコードに構文エラーがあるか確認しやすくなります。テキストエディタ、IDE、JSON対応ビューアで開けます。
書き出し・変換JSON配列へ変換するときは全行を配列要素にまとめ、JSON Linesへ戻すときは各要素を1行ずつ書き出します。大量データではメモリ使用量に注意します。アプリケーションや変換ツールでCSVなどへ変換できます。

用途別の選び方

作りたいものや使う場面から選べます。

データを1行ずつ読み書きする

行単位で処理するログや記録・JSONレコードのストリーミング交換

JSON Lines向き

テキスト処理ツールで追記・連結する

行単位で処理するログや記録・JSONレコードのストリーミング交換

JSON Lines向き

構造化データの受け渡し

Web API・設定ファイル・データ交換

JSON向き

確認ポイント 1

JSON Linesでは各行が独立してパースできるJSON値です。オブジェクトが一般的ですが、文字列・数値・null等も許され、空行は有効なレコードではありません。通常のJSONテキストは全体で1値を表します。

使い分け

確認ポイント 2

JSON LinesはUTF-8を使い、各値の間にLFを置きます。CRLFもJSONの空白規則により利用できます。最後の値の後の改行は推奨ですが必須ではなく、ファイル連結やストリーム処理で扱いを決める必要があります。

使い分け

選ぶ理由を詳しく

  • JSON Linesファイル全体は1つの標準JSON文書ではありません。通常のJSONパーサーへそのまま渡すと複数トップレベル値で失敗する場合があるため、行単位で読み込みます。変換時は順序、途中失敗からの復旧、空行・不正行、最終改行、JSON Lines MIME typeの未標準化を確認してください。

詳しく見る

参考資料・仕様