Private by defaultFree. Always useful.
Objects to rowsTHE SMALL TOOLS THAT MAKE A BIG DIFFERENCE

JSON to CSV.

Convert JSON objects to CSV in your browser. Flatten nested objects into columns, choose a delimiter, and download the result without uploading your data.

100% browser-based
Ctrl + Enter to convert or Command + Enter on Mac

Input

JSON
4 lines · 216 bytesUTF-8

Output

CSV

A clearer view, coming right up.

Your converted CSV will appear here.

Hit “Convert to CSV” to get started
Waiting for your input CSV
Only your browser sees your data. 2 MB input limit.No uploads. No sign-up. Just tools.
A QUICK WALKTHROUGH

Good data, in three steps.

Simple by design. Ready when you are.

  1. 01

    Bring your data

    Paste a JSON object or an array of objects. Each object becomes one CSV row.

  2. 02

    Make it yours

    Choose a delimiter and whether to protect spreadsheet formulas, then select Convert to CSV.

  3. 03

    Keep things moving

    Copy or download the CSV. Nested objects become columns using the rules below.

A few things under the hood

Know exactly how your data is handled.

JSON to CSV conversion rules
  • Nested objects flatten into dot paths: {"team":{"city":"Austin"}} becomes team.city. Literal dots and backslashes in keys are escaped with a backslash: "team.city" becomes team\.city. Empty keys are rejected.
  • Arrays stay in a single cell as compact JSON. Empty objects become {}. Null and missing properties become empty cells; this distinction is lost in CSV. Empty cells are quoted to preserve single-column empty records.
  • Columns are the union of keys in first-seen order. Booleans and numbers become text. Empty arrays and arrays containing non-object records are rejected.
  • CSV uses CRLF line endings and standard doubled-quote escaping. Select comma, semicolon, or tab.
  • Spreadsheet protection is on by default: formula prefixes =, +, -, @ and their full-width variants are detected even after whitespace/control characters. Leading tab, carriage return, and line feed are also protected. Matching cells and headers get an apostrophe prefix. This changes those values, including negative numbers. Turn it off only when exact values are needed.
  • Native JSON number precision and duplicate-key behavior apply. CSV to JSON keeps flattened headers literal; it does not rebuild nested objects.
  • All tools accept UTF-8 text up to 2 MB and nesting up to 80 levels. Results are limited to 8 MB. CSV tables are limited to 1,000,000 cells including headers; XML is additionally limited to 50,000 elements. Results are held only in this page’s memory; refreshing or navigating away clears them.
COMMON QUESTIONS

JSON to CSV questions

Answers for working with real data.

How does nested JSON become CSV columns?

Nested objects become dot-separated column names. For example, {"team":{"city":"Austin"}} produces a team.city column. Arrays stay in one cell as compact JSON, and literal dots and backslashes in keys are escaped.

Why do some CSV values start with an apostrophe?

Formula protection is enabled by default. It prefixes matching values and headers with an apostrophe to reduce spreadsheet formula interpretation. This also changes negative numbers. Turn it off when exact data interchange is needed; protection is not a guarantee for every spreadsheet application.

Can I convert the CSV back into the original JSON?

CSV to JSON treats column names as literal keys and keeps values as strings. It does not rebuild nested objects or arrays. Null and missing properties both become empty CSV cells, so the round trip cannot preserve every JSON distinction.

Keep your workflow flowing.

THERE’S A TOOL FOR THAT