JSON to CSV converter
Convert JSON to CSV as you type. Nothing is uploaded, and the result can be previewed as a table, copied or downloaded.
Convert JSON to CSV as you type. Nothing is uploaded, and the result can be previewed as a table, copied or downloaded.
Loading the converter… It runs locally in your browser.
TableForge finds the array of records inside your JSON (even when it sits under a key like "data" or "results"), flattens nested objects into dot-path columns such as address.city, and builds the header from the union of every key, so records with missing fields still line up.
JavaScript Object Notation (RFC 8259): nested objects and arrays with strings, numbers, booleans and null. The default payload format of web APIs.
Comma-separated values: one record per line, fields split by a delimiter, and fields that contain the delimiter, quotes or line breaks wrapped in double quotes (RFC 4180).
A table is flat: every row has the same columns. JSON is a tree. To fit one into the other, each leaf value gets a column named after its path from the top of the record, joined with dots. Toggle the options and watch the header change.
{
"id": 7,
"name": "Mae Jemison",
"address": {
"city": "Houston",
"geo": {
"lat": 29.76
}
},
"missions": [
"STS-47",
"Endeavour"
]
}| Column | Value |
|---|---|
| id | 7 |
| name | Mae Jemison |
| address.city | Houston |
| address.geo.lat | 29.76 |
| missions.0 | STS-47 |
| missions.1 | Endeavour |
“Column per item” keeps every value searchable but widens the table when arrays are long. “Joined text” keeps one column and suits tags. “JSON text” is lossless, so you can parse it back later.
A CSV field only needs double quotes when it contains the delimiter, a double quote or a line break. A quote inside a field is written twice ("Katherine ""Kay"" Johnson"). Our interactive CSV format guide lets you type a value and watch exactly which rule applies.
No. The JSON to CSV conversion runs entirely in your browser with JavaScript. The page works offline once it has loaded, and TableForge never receives your data.
The limit is your device's memory. Files of tens of megabytes (hundreds of thousands of rows) convert fine on a typical laptop. The preview shows the first 200 rows, but the download always contains every row.
Each value gets a column named after its path, joined with dots, for example address.city. Arrays can become one column per item (tags.0, tags.1), a single joined column (a; b), or JSON text. Records that lack a key simply leave that cell empty.
Yes, use the CSV to JSON converter at tableforge.io/csv-to-json, or the universal converter on the home page.
Open the .json file (or paste the JSON) in the input panel. TableForge finds the array of records, flattens nested objects into dot-path columns and shows the CSV immediately. Press “Download .csv” to save it. The file is processed in your browser and never uploaded.
Open it with “Open file” rather than pasting, which is faster for big files. Files of tens of megabytes convert in a few seconds on a laptop because nothing is uploaded. For multi-gigabyte files, use a streaming command-line tool such as jq (jq -r '.[] | [.id, .name] | @csv') or Python’s pandas.
Neither: they suit different jobs. CSV is flat, compact and opens in any spreadsheet, so it is best for tabular data and imports. JSON keeps nesting, types (numbers, booleans, null) and arrays, so it is best for APIs and configuration. Convert to CSV when a person or a spreadsheet needs to read the data.
For a list of flat objects: import pandas as pd; pd.json_normalize(data).to_csv("out.csv", index=False). json_normalize flattens nested objects into dot-separated columns, the same convention TableForge uses. Without pandas, csv.DictWriter works for flat records.
VS Code has no built-in converter. Paste the JSON here and copy the CSV back, or install an extension. In Excel use Data → Get Data → From File → From JSON, which opens Power Query, then expand the record columns. Converting here first is usually quicker for a one-off.