Convert JSON to NDJSON Online
Convert JSON files to NDJSON format directly in your browser. No upload required — your data never leaves your device.
About converting JSON to NDJSON
Converting a JSON array to NDJSON (also called JSON Lines) removes the outer brackets and writes each element as one compact object per line. Many loaders require exactly that. BigQuery load jobs accept only newline-delimited JSON, and Spark, Hugging Face datasets, jq -c pipelines and log shippers read a file line by line without holding the whole document in memory.
The output is re-serialised from a table, not copied text, so it is not byte-identical to the input. Every line gets the same keys in the same order, and a key missing from a record is written as null. Nested objects and arrays stay nested. Numbers are printed from their parsed value, so 249.50 becomes 249.5, and integers larger than 9,007,199,254,740,991 are written as quoted strings so JavaScript readers do not round them. Whole-second UTC timestamps such as 2026-03-02T09:14:00Z are rewritten too, as 2026-03-02 09:14:00.
For Elasticsearch or OpenSearch, the _bulk API needs an action line such as {"index":{}} before every document and a newline at the very end of the request body. This converter writes documents only, with no trailing newline, so add both before posting. The file downloads with a .ndjson extension; rename it to .jsonl if your tool expects that, since the content is the same.
Not sure which format you need? Read the JSON vs NDJSON comparison.
Worked example
A small sample file, converted with the default settings.
Input (JSON)
[
{
"id": 4101,
"title": "Login fails on Safari 17",
"state": "open",
"comments": 3,
"created": "2026-03-02",
"assignee": "maria"
},
{
"id": 4102,
"title": "Export slow, then times out",
"state": "closed",
"comments": 8,
"created": "2026-03-03",
"assignee": null
},
{
"id": 4103,
"title": "Add dark mode",
"state": "open",
"comments": 12,
"created": "2026-03-05",
"assignee": "dev-team"
},
{
"id": 4104,
"title": "Crash on empty file",
"state": "closed",
"comments": 0,
"created": "2026-03-06",
"assignee": "li.wei"
}
]Output (NDJSON)
{"id":4101,"title":"Login fails on Safari 17","state":"open","comments":3,"created":"2026-03-02","assignee":"maria"}
{"id":4102,"title":"Export slow, then times out","state":"closed","comments":8,"created":"2026-03-03","assignee":null}
{"id":4103,"title":"Add dark mode","state":"open","comments":12,"created":"2026-03-05","assignee":"dev-team"}
{"id":4104,"title":"Crash on empty file","state":"closed","comments":0,"created":"2026-03-06","assignee":"li.wei"}What changes when you convert JSON to NDJSON
- The [ and ] around the array and the commas between objects are removed. Each issue becomes one line.
- Pretty-printing is dropped. Each record is written on a single line with no spaces after colons or commas.
- null values are written out explicitly, as for the assignee of issue 4102. A key absent from a source record is also written as null.
- Objects and arrays inside a record keep their structure. When a nested object has different keys in different records, the missing ones are added with null.
- A key that mixes types across records, such as 1 in one and "two" in another, becomes a string holding the raw JSON, for example "\"two\"".
Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.
Frequently Asked Questions
Can I load the output into BigQuery?
Yes. Choose JSONL (newline-delimited JSON) as the source format. With schema auto-detection, nested objects become RECORD fields and arrays become REPEATED fields. No wrapper or extra header line is needed.
Why are some numbers now strings?
JavaScript numbers lose precision above 9,007,199,254,740,991. To avoid silently changing large IDs, those integers are written as quoted strings. Smaller integers and all decimals stay as JSON numbers.
Does the record order stay the same?
Yes. Line 1 of the output is the first element of the array, line 2 the second, and so on. Only the formatting and the handling of missing keys change.
What is NDJSON format?
NDJSON (Newline-Delimited JSON) stores one JSON object per line, making it easy to stream, append, and process incrementally.
Related Tools
Convert NDJSON to JSON Online
Convert NDJSON files to JSON format directly in your browser. No upload required — your data never leaves your device.
NDJSON Viewer Online
View and inspect NDJSON files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
JSON Viewer Online
View and inspect JSON files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.
Validate JSON Files Online
Validate JSON file structure in your browser. Check null counts, distinct values, and data types for every column — no upload required.
Deduplicate JSON Files Online
Remove duplicate rows from JSON files instantly in your browser. No upload, no server — 100% private.
Convert JSON to CSV Online
Convert JSON files to CSV format directly in your browser. No upload required — your data never leaves your device.
Convert JSON to Parquet Online
Convert JSON files to Parquet format directly in your browser. No upload required — your data never leaves your device.
Convert JSON to Excel Online
Convert JSON files to Excel format directly in your browser. No upload required — your data never leaves your device.