The JSON Lines Convention

jsonlines.org sets three rules: UTF-8, one valid JSON value per line (no blank lines), and \n line endings (\r\n tolerated), with stream compression (.jsonl.gz) recommended. Writers must not pretty-print; embedded newlines are no risk because JSON escapes them inside strings. Line tools become record tools (wc -l, head, split), and jq 133,477 's -c writes one compact value per line.

BookNest's catalog as JSON Lines
jq -c '.books[] | {id, title, price}' data/books.json | head -n 3
Output
{"id":1,"title":"The Quiet Harbor","price":14.99}
{"id":2,"title":"Patterns of the Deep Web","price":39.5}
{"id":3,"title":"Salt and Saffron","price":24.0}