Spreadsheet / Data

JSON ↔ CSV Converter

Convert arrays of JSON objects to CSV and CSV back to JSON.

No data sent or stored

An API hands you JSON; the spreadsheet, the import form, or your analyst wants CSV. Or the reverse — you've got a tidy CSV and a tool that only ingests JSON. The two formats carry the same records in stubbornly different shapes.

This tool converts both directions: paste a JSON array of objects to get CSV, or paste a CSV to get a JSON array.

Loading tool…
Next step Markdown to HTML Converter Convert Markdown to clean HTML with a live preview, or turn HTML back into Markdown.

Your data never reaches us

Nifty Utilities has no backend server, database, user accounts, or endpoint capable of receiving your tool inputs. Files and entries are processed inside your browser. We cannot view, capture, or store them.

JSON to CSV

Paste a JSON array of objects and convert. The tool reads the keys to build a header row and writes one CSV line per object. For this to work, the top level must be an array — a list of records wrapped in square brackets, like [{"id":1,"name":"A"},{"id":2,"name":"B"}]. A single bare object or a deeply nested structure won't map onto a flat table. The cleanest input is an array where every object shares the same set of keys; that produces a complete, rectangular CSV.

CSV to JSON

Paste a CSV with a header row and convert the other way. The first row becomes the key names, and each subsequent row becomes one JSON object using those keys. Missing values in a row turn into empty strings rather than being dropped, so every object keeps the same shape. The delimiter is auto-detected, so comma, tab, semicolon, and pipe-separated text all work without you configuring anything.

Where the two formats disagree

The friction is always structure. JSON expresses nesting and types; CSV is a flat grid of text. That mismatch creates a few predictable snags:

  • Nested objects and arrays. A value that is itself an object or list has no natural single-cell representation. Flatten your JSON to one level before converting to CSV.
  • Uneven keys. If some objects have keys others lack, the CSV's columns are derived from what the tool finds — non-uniform records can produce gaps or unexpected output. Normalize the keys first.
  • Everything becomes text in CSV. Numbers, booleans, and nulls all flatten to strings. Converting back won't automatically restore them to their original types.
  • Commas and quotes in values. Going to CSV, values containing the delimiter are quoted to stay in one field; going back, that quoting is unwound. Embedded line breaks survive only inside properly quoted fields.

How to use this tool

Paste your text, click the direction you want, and copy or download the result. Everything runs in your browser — nothing you paste is sent to a server or stored. An API response with personal data or an internal CSV can be converted entirely on your own device.

Frequently asked questions

What JSON structure does it expect?

A flat array of objects, where each object is one row and all objects share the same keys. Nested objects, arrays inside values, and inconsistent key sets produce incomplete or unexpected results. Flatten and normalize your JSON before converting if it isn't already a simple list of records.

Does CSV-to-JSON support different delimiters?

Yes. It auto-detects the delimiter in the pasted text, so comma, tab, semicolon, and pipe-separated input all convert without manual configuration.

Will numbers stay numbers when I convert?

Not guaranteed. CSV has no type system, so converting JSON to CSV turns numbers and booleans into plain text. Converting back yields strings unless your downstream tool re-parses them. If strict typing matters, cast the values after conversion.

My JSON didn't convert — what's wrong?

The most common causes are input that isn't a top-level array, a trailing comma or other syntax error, or nested structures the flat converter can't represent. Validate that your JSON is a well-formed array of flat objects, then try again.

How do I handle a JSON response that's wrapped in an outer object?

Many APIs return something like {"results": [ ... ]} rather than a bare array. The converter needs the array itself, so copy out just the value of the inner array — everything from the opening square bracket to its matching close — and paste that. Once the top level is the list of records, the conversion runs normally.

Important

This tool provides estimates and general-purpose documents, not financial, tax, legal, or professional advice. Verify important results before relying on them.

Support

Problem with this tool or suggestions for improvement? Please email support@niftyutilities.com.