JSON to CSV

Convert an object or array of objects into an Excel-friendly CSV. Nested values remain intact as JSON text.

What this tool actually does

JSON → CSV creates a new file in the target format; it does not merely rename the extension. MakeFileWork processes the source in the browser where this conversion supports local execution and keeps the job bounded so a single file cannot consume unlimited memory or CPU.

How the result is verified

Before download, the engine re-serializes, reopens, parses or otherwise checks the output according to the format. The result shows concrete evidence such as pages, structure, extracted text or generated format instead of treating any downloadable blob as a successful conversion.

Limits and fidelity

Formats do not represent every feature in the same way. Layout, fonts, animation, formulas, metadata, transparency or interactive elements can change when the destination cannot preserve them. The tool does not promise fidelity that the target format cannot support and calls out known trade-offs.

When to use this workflow

Use this workflow when another application, device or upload portal requires the target format and you need a newly generated, verifiable file. If the rejection also specifies KB/MB, pixel dimensions or other measurable limits, use the upload-requirement workflow to validate those constraints together.

Privacy and final verification

Keep the original file until the output has been reviewed in the destination application or portal. Supported workflows process locally in the browser and enforce bounded size and complexity limits. For JSON → CSV, verify that the generated format preserves the properties that matter for your use case. For important data, compare a representative sample and confirm that format, content and quality meet the actual requirement before replacing the source file. Also open the generated file in the destination application when compatibility, colour, transparency, layout or compression matters.

What JSON becomes CSV?

Choose a JSON object or an array of objects. The converter discovers columns across every record and writes UTF-8 CSV with a byte-order mark for spreadsheet compatibility. Quoted commas, quotes and line breaks are escaped and the generated rows are parsed again before download.

Cases that cannot be exported safely

CSV does not retain JSON types: nested objects and arrays become JSON text inside cells. Missing properties and null values cannot be distinguished from empty CSV fields, so the converter refuses them instead of silently inventing data. Duplicate JSON property names, decimals that JavaScript would round, and dangerous spreadsheet formulas also stop export.

Example and practical limits

For records such as [{"name":"Ana","units":2},{"name":"Luis","units":3}], the result has two columns and two data rows. Input is limited to 10 MB, 50,000 rows, 200 columns and 100,000 characters per cell. Check downstream systems for number, date and boolean typing after import.

Related workflows

For delimited files with inconsistent rows, use CSV repair first. To convert an existing CSV to structured records, use CSV to JSON. For mixed-file verification without altering valid inputs, see universal batch.

Unicode and encoded output: an extra integrity check

JSON permits escape sequences for individual UTF-16 surrogate halves. A lone half cannot be encoded as valid UTF-8 CSV and would silently become a replacement character. This converter now rejects such values, as well as NUL and unsupported control characters. It also reads the actual UTF-8 output bytes back and compares every parsed cell before download.

Example: an emoji and an invalid escape

[{"label":"🚀"}] represents a valid paired emoji and can be exported. A single unpaired \uD800 cannot. If you need to preserve an unusual JSON representation byte for byte, keep it as JSON rather than exporting a CSV cell. Use Format JSON for a readable JSON copy.

The source JSON is limited to 128 levels of nesting and 100,000 object/array containers before parsing.