Favorite places of your favorite city
Home
Add to preferred sources on Google

JSON to CSV Converter

Turn flat JSON records into a table without rounding large identifiers or guessing columns. Paste JSON or choose a local UTF-8 file, select a separator, then copy or download the checked output.

Input

Paste a nonempty array of flat objects, then choose a separator.

Changes data; not guaranteed to prevent spreadsheet formulas.

Limits: 2 MiB source, 10,000 rows, 256 columns, 250,000 data cells and 4 MiB output.

Delimited text result

Convert JSON to see the result here.

Conversion happens locally in your browser.

Convert a flat record array

  1. Choose Pasted JSON or Local file. Files must use UTF-8, have a .json or .txt suffix and fit 2 MiB. The source must be a nonempty array of objects whose values are strings, numbers, booleans or null. Nested values and JSON Lines are not supported.
  2. Choose comma, semicolon or tab. Prefix formula-like cells is off by default: enabling it changes matching headers and values, including negative numbers, and does not guarantee spreadsheet safety. Use example fills a two-record source without starting conversion.
  3. Select Convert and read the data-row, column and output-byte counts. Conversion details shows how records become first-seen columns and quoted text. Copy and Download use the full current output even when the default preview is shortened.

Understand the table and its limits

Columns follow each decoded key's first appearance while reading records and their written members in order. Numeric-looking keys are not sorted. Later keys add columns and earlier rows receive empty cells there. Empty objects remain rows if another record supplies a column; a document with no columns cannot convert.

Strings retain their decoded characters. Number text such as 9007199254740993, 1.2300, 1e+03 and -0 keeps its original spelling when prefixing is off; it is not evaluated as a browser number. Booleans become true or false. Null, missing members and empty strings all produce empty CSV cells, with separate counts in the result.

CSV is not reversible JSON and does not preserve types. A number and the same text in a JSON string can produce identical cells. Spreadsheet software may change leading zeros, large numbers, dates or formulas even when every field is quoted. Choose matching separator and text-import settings rather than assuming double-click opening will preserve values.

Every output field is quoted and embedded quotes are doubled. Records end with CRLF, including the last; embedded CRLF, LF, CR and tab remain inside their fields. Output is UTF-8 without a BOM. Semicolon and tab are explicit dialects, not promises that every CSV or TSV reader handles their quoting.

Follow the supplied records

The supplied 86-byte example becomes two data rows and five columns in first-seen order: 10, 2, name, new and flag. With comma and prefixing off, the output is 97 UTF-8 bytes including a header and final CRLF. The large identifier and 1e+03 stay literal, and the comma and quotes in the name stay within one field.

The same example contains four missing members, one null and no empty-string values. Those five cells all look empty in CSV, but their causes remain visible in the counts. One field, -0, matches the formula-like heuristic. Prefixing changes it to '-0 and makes the output 98 bytes; that is a documented data change, not a safety guarantee.

An empty object followed by a record containing a: 1 produces header a, an empty first data cell and then 1. An empty array or only empty objects fails because no table columns exist. Two differently escaped spellings of the same decoded key in one record also fail instead of overwriting a value.

Explicit bounds and unsupported data

Original files and raw pasted UTF-8 are limited to 2097152 bytes; raw or decoded source also fits 2097152 UTF-16 units. The table allows 10000 data rows, 256 union columns and 250000 data cells counted as rows times columns, including empty cells. A key, decoded string or number token is limited to 65536 Unicode scalar characters before prefixing.

Output is limited to 4194304 UTF-8 bytes including quotes, prefixes and final CRLF. A worker taking more than 15000 milliseconds is terminated with no partial export. The ordinary preview shows at most 100000 Unicode scalars; Copy, its full readonly fallback and Download use the complete accepted output.

A key cannot be empty or only ASCII space, tab, CR or LF. Duplicate decoded keys, unpaired surrogates and decoded ASCII controls other than tab, CR and LF are rejected; DEL is also rejected. These are deliberate tabular interoperability restrictions, not a claim that every rejected source violates JSON grammar. One initial signature is accepted, but a second outside JSON text is not ignored.

Prefixing prepends one apostrophe to a cell beginning with tab, CR or LF, or whose first character after leading ASCII spaces, tabs, CR and LF is =, +, -, @ or their full-width counterparts. Original whitespace stays. The rule applies to headers too; if it creates duplicate headers, conversion fails. It is not universal sanitization and other software may change or undo its effect.

Local files and current output

This tool adds no document upload, account, saved history, source logging or data-bearing share URL. Editing, changing sources or options, replacing a file, cancelling or clearing retires the old output. Existing site services remain subject to the site's policies; local processing is not certification of those services or deployment.

Questions about JSON to CSV

It preserves a JSON number's written text instead of converting it through a browser Number. That promise applies to CSV text with prefixing off. A spreadsheet can still coerce the cell, and the converter cannot restore precision already lost before the source JSON was created.

Both become empty cells, as do empty strings. Their separate counts explain the conversion, but CSV alone cannot reconstruct which empty cells were null, missing or strings. This is not reversible or type-preserving JSON.

Not in this version. Each row must be an object with scalar values. Nested objects and arrays are rejected rather than given guessed paths, extra rows or serialized fragments.

Two source spellings can decode to the same name. Keeping only the last would silently discard a value, so a repeated decoded name within a row stops conversion. The same column name in different rows is expected and joins one column.

No universal guarantee is made. The exact heuristic changes some headers and values by adding an apostrophe, including negative numbers. It may be visible, incomplete or undone by other software. Quoting by itself also does not prevent spreadsheet interpretation.

The ordinary preview is bounded for readability and explicitly says when it is incomplete. Copy and Download use the full current checked result. If clipboard permission fails, the selected readonly fallback contains that full result, not the clipped preview.

Sources and format references

CSV Delimiter Converter

Convert CSV separators, preview real columns and spot import problems. Works locally with CSV, TSV and text; values remain unchanged.

Open tool — CSV Delimiter Converter

Compare Two CSV Files

Match rows by a key column and find added, removed and changed records.

Open tool — Compare Two CSV Files

CSV Duplicate Finder & Remover

Find exact duplicate CSV rows or repeated IDs. Review conflicting values, keep original data and download retained, removed and unresolved records.

Open tool — CSV Duplicate Finder & Remover

CSV Merger

Combine rows from several CSV files by exact column name. Preview alignment and download CSV with a merge report.

Open tool — CSV Merger

CSV to JSON Converter

Convert CSV text or UTF-8 files to JSON objects or arrays, keeping cells as strings without guessing data types.

Open tool — CSV to JSON Converter

CSV Splitter

Split a CSV by rows or exact file size. Keep headers and download each part.

Open tool — CSV Splitter
View all tools in this category