How to use the JSON to CSV Converter
- Paste JSON or open a .json file. The first array of objects is used automatically, and the note under the result says which one.
- To use a different array, enter its path, such as $.data.orders or orders[0].lines.
- Check the list of available columns. To keep only some, type them in Columns, separated by commas, in the order you want.
- Pick the delimiter. Use Semicolon for Excel in regions where the comma is the decimal separator.
- Copy the CSV or save it. Turn on Excel BOM if Excel shows accented letters incorrectly.
How the JSON becomes rows and columns
- Rows
- Each item of the selected array becomes one row. If the items are plain values instead of objects, they go into a single "value" column.
- Columns
- Columns appear in the order keys are first seen. Nested objects are flattened with dots: {"address": {"city": "Dubai"}} becomes the column address.city. A row without a key gets an empty cell.
- Arrays inside a row
- Nested arrays are written as JSON text, such as ["red","blue"], or joined with semicolons (red;blue) when they only contain simple values and you choose that option.
- Quoting
- Cells that contain the delimiter, quotes, line breaks or leading or trailing spaces are wrapped in double quotes, and quotes inside are doubled, following RFC 4180.
Examples
These outputs were produced by the same code that runs in the tool above.
Customers inside a response
The rows are found automatically in "data". The nested address becomes two columns, and the tags array is kept as JSON text.
Input JSON
{
"page": 1,
"data": [
{"id": 101, "name": "Amina Rahman", "address": {"city": "Dubai", "country": "AE"}, "tags": ["wholesale"]},
{"id": 102, "name": "Omar, Jr.", "address": {"city": "Sharjah", "country": "AE"}, "tags": []}
]
}
CSV
id,name,address.city,address.country,tags
101,Amina Rahman,Dubai,AE,"[""wholesale""]"
102,"Omar, Jr.",Sharjah,AE,[]
- Using the array at $.data. Set Array path to choose another one.
- Available columns: id, name, address.city, address.country, tags
Choose a nested array and columns
Only the lines of the first order, with three selected columns, separated by semicolons.
Input JSON
{"orders": [{"id": "SO-1", "lines": [{"sku": "ZV-1001", "qty": 2, "price": 24.5, "note": null}, {"sku": "ZV-1002", "qty": 1, "price": 39}]}]}
CSV
sku;qty;price
ZV-1001;2;24.5
ZV-1002;1;39
- Available columns: sku, qty, price, note
Frequently asked questions
Why do accented letters look wrong in Excel?
Older versions of Excel assume a local encoding unless the file starts with a byte order mark. Turn on Excel BOM before saving.
Excel puts everything in one column. What should I do?
Excel uses your region’s list separator. In many European regions that is a semicolon, so choose Semicolon as the delimiter, or use Data › From Text/CSV in Excel and pick the delimiter there.
Can a cell start a formula when opened in a spreadsheet?
Yes: spreadsheet programs may treat cells starting with =, +, - or @ as formulas. Check data from untrusted sources before opening the CSV in a spreadsheet.
Is my data uploaded?
No. The conversion runs on your device; the JSON and the CSV never leave it.
Limitations and edge cases
- Automatic detection uses the first array whose items are mostly objects; set Array path if your JSON has several.
- Numbers are written as plain text without thousands separators; whole decimal numbers such as 5.0 are written as 5.
- Inputs up to 20 MB are supported, but very wide rows (thousands of columns) are hard to use in spreadsheets.
Read the privacy policy for how the site handles data.