How to Convert JSON Data Into a Spreadsheet-Ready CSV
Going from JSON to CSV is the harder direction, because you are flattening something that was allowed to nest into something that is not. The JSON to CSV Converter handles an array of objects, which is the shape this actually works for.
What converts cleanly
An array of flat objects, all with the same keys. The keys become the header row, each object becomes a data row, and nothing is lost. If your JSON is an API response listing records, it is probably already this shape.
Everything else needs a decision. A single object rather than an array is one row, which is fine but rarely what anyone wants. A nested object has to be flattened into separate columns - a user containing an address object becomes address.street, address.city and so on. And an array inside a field has no good answer at all: you either join its items into one cell with a separator, or spread them across numbered columns, and both are compromises.
Missing keys are the thing to watch
JSON objects in the same array need not have the same keys. Record one has a phone number, record two does not. A converter must decide whether the header is the keys of the first object or the union of all of them.
Taking the first object's keys is faster and silently drops every field that only appears later. Taking the union is correct and gives you a wider table with empty cells. If a column you expected is missing from the output, this is almost always why - check whether the first record happened to lack it.
Before you convert
Validate the JSON first with the JSON Formatter. A document that will not parse cannot be converted, and the error message is far more useful than a half-written CSV.
Then look at one object and ask whether it is flat. If it is not, decide what you want the nested parts to become before converting rather than after, because unpicking a badly flattened CSV is worse than flattening it properly once.
Opening the result
A spreadsheet will help in ways you did not ask for. Long numbers become scientific notation, leading zeros vanish, and anything that looks like a date is reformatted. Import the file rather than double-clicking it, and set the troublesome columns to text, or your reference numbers will not survive the trip.
Common questions
What if my JSON is a single object?
You get one row. If you wanted its nested array as rows, extract that array first.
How are nested values named?
Usually by joining the path with a dot, so the origin of each column stays readable.
Can I choose which columns to export?
Trim the JSON to the fields you want before converting - it is easier than deleting columns afterwards.
Why is a column missing?
Almost certainly a key absent from the first record. Check whether the header came from one object or from all of them.
Is my data uploaded?
No. It is converted in your browser.
Got JSON that needs to be a spreadsheet?