JSON Lines and array converter

One complete JSON value per physical LF or CRLF line. Blank lines and a leading BOM follow your explicit choice.

  • Runs in your browser
  • No upload
  • Check before download

Inputs stay in this tab and are not uploaded or saved automatically. Optional aggregate usage counts and coarse processing diagnostics are sent only after consent, without input content or filenames. Clearing or closing loses inputs; save needed outputs first.

Formats and limits

One complete JSON value per physical LF or CRLF line. Blank lines and a leading BOM follow your explicit choice. Large numbers and string escapes are kept exactly; values are not coerced through binary64. Arrays can contain any JSON value. The array wrapper does not count toward the per-record depth limit, and a trailing newline is optional on input. Outside strings, only space, tab, CR and LF are JSON whitespace. NBSP, embedded BOM and other Unicode spacing are syntax errors; the BOM choice applies only at the start of the input.

UTF-8 only. Input up to 1 MiB; XML up to 100,000 UTF-16 units and depth 64; JSON up to 20,000 nodes. JSON Lines up to 16 MiB, 100,000 records and 1 MiB per value. Output up to 32 MiB. Queries run for up to 3 seconds and other jobs for up to 10 seconds in a worker you can cancel. XSD native memory is limited to 64 MiB; this is not the whole worker or DOM heap.

How to use it

  1. Choose the source and mode

    Select JSONL→array or array→JSONL. A JSONL record is one complete JSON value on a single physical line. Choose how to handle blank lines, a leading BOM and LF/CRLF line endings explicitly.

  2. Configure the domain parameters

    Two lines containing {"id":9007199254740993} and true become [{"id":9007199254740993},true]. The reverse conversion produces two records, not one line per property, and the large integer keeps its exact spelling.

  3. Inspect diagnostics and download

    Download the JSON or JSONL file with the newline convention you chose. This converter works on the text, so it keeps the spelling of numbers and escapes instead of parsing values through JavaScript Number. Whitespace between records may change.

Formats and limits

Why is this input rejected or empty?

A pretty-printed object spread over several physical lines is not one JSONL record. Array→JSONL needs an outer JSON array. Blank lines and a BOM cause an error unless you choose to skip or strip them; check the line and column in the message.

Which parser profile and limits apply?

Input up to 16 MiB, each record up to 1 MiB, and at most 100000 records. Nested arrays, scalars and objects are all valid records. This job doesn't apply the safe-integer restriction used by the JSON query tools that evaluate values.

Are inputs or referenced files sent to a server?

Parsing runs locally in a browser worker. URLs inside the input are not used to fetch remote documents. Supply any schema dependencies the tool supports as local files, keep your source file separately, and download the results before you close the page.