Start a project ↗WEMAIDE / TOOLS / DATA
JSON to CSV converter
Turn JSON, JSON Lines or an API response into a usable table. Select the records you need and inspect the columns before downloading.
Your inputs stay in this tab. No upload, account or AI request is needed. Site analytics follow your privacy choice.
About this tool
How to use
- Choose JSON or JSON Lines / NDJSON. Paste your data or open a local .json, .jsonl or .ndjson file up to 2 MB in the matching mode.
- Preview the input. For a wrapped JSON response, choose its records array from the discovered paths. Keep nested fields in a cell or flatten objects, then select a delimiter.
- Check the rows and columns and download the CSV. The export includes every accepted record, not just the preview rows.
Worked example
For {"data":[{"id":"001","name":"Ada"},{"id":"002","name":"Lin"}],"total":2}, preview once, then choose /data under Records to export. The CSV has two records with id and name columns; total is response metadata and is excluded. For a log export, choose JSON Lines / NDJSON and place each object on its own line.
Rules & limitations
JSON mode accepts one object or an array of objects. It discovers up to 100 arrays containing only objects below response object properties, including paths such as /response/items. Select an array explicitly; the tool does not guess which response data you need. Arrays inside other arrays are not expanded.
JSON Lines / NDJSON mode reads one complete object per line and ignores blank lines. Errors show the original line number. Pretty-printed multi-line objects, JSON comments, null, primitive values and arrays on a line are not accepted. CSV input is not supported.
Preserve mode stores nested objects and arrays as JSON inside a cell. Flatten mode expands objects with JSON Pointer-style paths: / means a level, ~1 escapes / in a key, and ~0 escapes ~. Arrays remain in one cell; rows are never multiplied.
Missing fields and null become empty cells. CSV does not retain JSON types; spreadsheet software may infer dates, remove leading zeros or convert long identifiers. Import those columns as text.
Numbers outside JavaScript's safe range are rejected instead of silently rounded. Quote large identifiers in the original export. Decimal calculations follow JavaScript number precision.
Limits: 2 MB input, 10,000 exported objects, 200 columns, 200,000 cells, 64 overall nesting levels (per input object for JSON Lines) and 12 nested object levels in flatten mode. Spreadsheet text protection is on by default and prefixes risky text with an apostrophe; this changes those values intentionally.
Common questions
How do I convert NDJSON or JSON Lines to CSV?
Choose JSON Lines / NDJSON as the input format, paste one JSON object per line or open a .jsonl or .ndjson file, then preview and download. Fields from all accepted objects become columns; missing values are blank.
Can I convert a nested API response without copying its array?
Yes. In JSON mode, paste the whole response and preview it. Records to export lists arrays of objects found below object properties. Choose a path such as /data to make each item a row. Other response metadata is excluded.
Are files uploaded to WeMAIde?
No. The selected file is read and converted in this browser tab. Your JSON and generated table are not sent to our server.
Why does a field begin with an apostrophe?
Spreadsheet text protection prefixes text that could otherwise be interpreted as a formula. You may switch it off for a trusted machine-to-machine export, but review the data before opening it in a spreadsheet.