ndjsonとは、JSONの値を改行文字で区切ったデータのこと。ndjsonはnewline delimited JSONの略です。
ndjsonの例
各行がひとつのJSONの値を表現します。次の例では、3つのJSONの値が表現されています。
{"method":"GET","path":"/","code":"200"}
{"method":"GET","path":"/","code":"200"}
{"method":"GET","path":"/","code":"200"}
改行文字
ndjsonで区切り文字に使う改行は、\n
または\r\n
どちらでもいいことになっています。
ndjsonの用途
fluentdなどで、ログのストリーミング配信で用いられます。普通のJSONと比べて、一度に沢山のJSON値を送信できるので、ログの一括処理がしやすいです。また、普通のJSONで配列でログを送信する場合、受信側は配列の終了まで待たないとなりませんが、ndjsonの場合1行受け取るごとに処理できるので、よりリアルタイムに処理が行えます。
ndjsonのContent-Type
ndjsonのContent-Typeはapplication/x-ndjson
です。
参考文献
- ndjson
- ndjson/ndjson-spec: Specification - ndjsonの仕様