Turn a JSON array of objects into a CSV file with union columns, optional flattening of nested objects and your choice of delimiter. Nothing is uploaded.
Your files are processed in your browser, on your own device. Nothing is uploaded to a server.
This JSON to CSV converter turns a JSON array of objects into a spreadsheet ready CSV file. Nested objects flatten into dotted column names, the header covers every key found in any row, and you pick the delimiter. It is free, runs in your browser, and nothing is uploaded to a server.
Paste a JSON array and the converter reads every object in it, not just the first one. It gathers the full set of keys across all rows, in the order they first appear, and builds the header from that union. A key that only shows up in row forty still gets its own column, and rows without that key simply leave the cell empty.
Flattening writes a nested value like an address as columns named address.city and address.zip. That shape is what spreadsheets can actually hold, and it keeps every value visible instead of burying a whole object inside one cell as unreadable text.
The classic case is an API that only speaks JSON and a person who only reads spreadsheets. A product feed, an order export or a list of signups needs to land in front of someone in sales, finance or support. Converting it to CSV hands them a file they can sort, filter and total in tools they already know.
One off analysis is the second case. You have a few hundred records from an endpoint and questions about them: how many per country, which plan is most common, where the gaps are. A spreadsheet answers those questions faster than writing a script for a file you will never touch again, and CSV is the bridge that gets the data there.
The trip back matters too. Once a cleaned table needs to feed a system again, the CSV to JSON converter on this site runs the same road in reverse.
CSV is a flat format and JSON is not, so converting always involves choices. This page makes its choices visible rather than hiding them. Nested objects flatten into dotted columns while flattening is on. Turn it off and nested objects are left out of the columns, which keeps the file simple at the cost of the detail inside them. Neither shape is the one true answer. The right one depends on what the spreadsheet needs to show.
One protection is built in and worth understanding. A cell whose text starts with =, +, – or @ can be read by spreadsheet apps as a formula, and a formula can run code the file author never intended. Cells like that get a leading apostrophe in the output, so the spreadsheet shows the text instead of running it, and the page tells you how many cells were guarded. If you see the count, it means your data carried values that looked like formulas, often from user generated text.
What happens after download belongs to your spreadsheet, not to this converter. Excel and its rivals sometimes strip leading zeros from codes, turn long ID numbers into rounded scientific notation, or guess that a value is a date. The CSV holds the exact text. If a column of codes matters, format those cells as text in the spreadsheet before opening the file, or import with the column types set by hand.
The conversion runs on your device. Your JSON is not sent to a server, not stored by ToolPeko and not read by anyone here. Exports often hold customer names, emails and order details, and this page treats that as your business only. There is no account, no file size wall and no daily cap.
An array of objects, where each object becomes one row. The keys across all objects become the columns. Objects with different keys are fine, because the header is built from the union of every key found.
With flattening on, a nested object becomes dotted columns, so an address field produces address.city and address.zip. With it off, only top level keys become columns and nested objects are left out.
Comma is the standard default. Semicolon suits Excel setups in many European locales, where commas are used as decimal marks. Tab and pipe help when your data itself contains a lot of commas or semicolons.
Spreadsheet apps treat a cell starting with =, +, – or @ as a formula. The guard adds a leading apostrophe to such cells so they open as plain text, and the page reports how many cells it protected.
Because the header covers every key in every row. An object that lacks a key leaves that cell empty, which keeps all rows the same width and the columns lined up.
No. The conversion runs in your browser on your own device. Nothing you paste is sent anywhere or stored by ToolPeko.
Same rules as this one: free, in your browser, with nothing uploaded.
Paste messy JSON, get it neat and valid.
Check JSON and find the exact line that breaks it.
Squeeze JSON down to one tight line.
Open JSON as a tree you can fold and explore.
A CSV file turned into clean JSON objects.
JSON rewritten as YAML for config files.
YAML config turned into JSON you can use in code.
Indent messy XML so its structure makes sense.