Spreadsheet & CSV Tools

JSON Lines to CSV

Turn a JSON Lines file into a spreadsheet-ready CSV. The columns are the union of the keys of all records, so records with extra or missing fields still line up; nested objects become dotted columns such as plan.tier, or stay as JSON text; and values are quoted correctly. Values that start with =, +, - or @ can be protected so that spreadsheets do not run them as formulas.

  • Runs in your browser
  • No sign-up
  • Free to use

How to use JSON Lines to CSV

  1. Paste JSON Lines or open a .jsonl file.
  2. Choose the delimiter and how nested values are written.
  3. Keep formula protection on for files opened in Excel.
  4. Copy or download the CSV.

JSON Lines to CSV features

All columns

Union of keys across records, in first-seen order.

Nested data

Flattened to dotted columns or kept as JSON text.

Correct quoting

Delimiters, quotes and line breaks inside values handled.

Formula protection

Prevents CSV injection in spreadsheets.

Excel friendly

Optional UTF-8 BOM and semicolon delimiter.

Local

Converted in your browser.

When to use JSON Lines to CSV

  • Opening an NDJSON log export in Excel or Google Sheets.
  • Turning a JSONL dataset into a table for review.
  • Loading event data into a tool that only imports CSV.
  • Sharing structured data with non-technical colleagues.

JSON Lines to CSV FAQ

What happens to nested objects?

With flattening, {"plan": {"tier": "pro"}} becomes a plan.tier column. Arrays are written as JSON text, because they have no natural column layout.

What if records have different fields?

Every key found in any record becomes a column; missing values are empty cells.

What is formula injection?

A CSV cell starting with =, +, - or @ is run as a formula by spreadsheets, which attackers can abuse. The protection adds an apostrophe so the value is shown as text.

Why add a BOM?

Excel on Windows guesses the encoding of CSV files; a UTF-8 byte-order mark makes it read accented characters correctly.

Can I convert back?

Yes, with the CSV to JSON Lines tool.

Is my data uploaded?

No. Everything runs in your browser.

From records to rows

JSON Lines stores records as independent JSON objects, which suits programs, while CSV stores a fixed grid of columns, which suits spreadsheets and many import tools. Converting between them means deciding the columns, flattening structure and quoting values correctly, and the details decide whether the CSV opens cleanly.

Columns are collected from all records rather than the first one, because JSON Lines records often differ: an optional field appears only when set, and new fields appear over time. Every key becomes a column in the order it first appears, and cells are left empty where a record has no value.

Nested objects have no direct CSV equivalent. Flattening turns each nested field into its own column with a dotted name, which keeps values filterable in a spreadsheet; keeping them as JSON text preserves the structure in a single cell. Arrays are always written as JSON text, since their length varies between records.

Quoting follows the CSV standard: a value containing the delimiter, a quote or a line break is wrapped in quotes, and quotes inside it are doubled. Choose a semicolon where Excel expects it, a tab for TSV, and add a byte-order mark if accented characters look wrong in Excel.

Spreadsheets treat cells that start with an equals sign, plus, minus or at sign as formulas. Data from users or logs can therefore run formulas when opened, a risk known as CSV or formula injection. With protection on, such values are prefixed with an apostrophe, which spreadsheets display as plain text.

Other useful tools