.ndjson
Data
NDJSON(Newline-Delimited JSON)
NDJSONは各行が有効なJSONオブジェクトで、改行文字で区切られたフォーマットです。このシンプルな規約により、ファイル全体を解析せずにストリーミング、行単位処理、追記が可能になります。ログファイル、データパイプライン、APIストリーミングで広く使用されています。
MIMEタイプ
application/x-ndjson
種類
テキスト
圧縮
無劣化
メリット
- + Streamable — process one record at a time without loading the entire file
- + Appendable — add new records by appending lines
- + Works with Unix tools (grep, head, tail, wc)
- + Standard for Elasticsearch bulk, BigQuery, and data pipelines
デメリット
- − No standard for the overall file (no top-level schema)
- − Cannot represent a single JSON object spanning multiple lines
- − Less compact than binary formats for large datasets
.NDJSONを使うタイミング
ログファイル、ストリーミングデータ、一括APIリクエスト、行単位のJSON処理が有益なシナリオにNDJSONを使用してください。
技術的詳細
NDJSONファイルの各行は完全な自己完結型JSON値(通常はオブジェクト)で、\nで終端します。ラッピング配列やレコード間のカンマはなく、追記、ストリーミング、Unixツールでの処理が容易です。
歴史
NDJSON(JSON LinesまたはJSONLとも呼ばれる)はJSONレコードをストリーミングする実用的なニーズから生まれました。ndjson.orgの仕様が2014年にこの規約を正式化しました。Elasticsearch一括API、BigQuery、OpenAIのAPIで使用されています。