Skip to main content
NeatUtility

JSON to CSV & CSV to JSON Converter

CSV & Tables100% Client-Side
Ready
JSON
0 lines0 chars
0 B / 4.77 MB
About this tool, examples & FAQ

Convert a flat JSON array of objects to a CSV table, or a CSV table with headers back to a JSON array, entirely in your browser. Nested objects and arrays are rejected rather than silently flattened, and spreadsheet formula escaping is an opt-in export option that is off by default.

Key facts

Verified capabilities and limits of this utility
Supported table shapeJSON to CSV accepts a flat array of objects; nested objects and arrays are rejected
Conversion optionsComma, semicolon, tab, or pipe delimiters; optional header row; opt-in formula escaping; opt-in CSV to JSON type parsing
Formula protectionOff by default; when enabled, risky cells are modified with a leading apostrophe and a FORMULA_ESCAPED warning is emitted
Max input size5 MB
Execution deadline3 s
Processing locationBrowser-only: pasted input is not uploaded

How to use

  1. Select the conversion direction: 'JSON to CSV' or 'CSV to JSON'.
  2. Paste a flat JSON array of objects or a CSV table with a header row into the editor.
  3. Choose the delimiter and set header, formula-escaping, and type-parsing options as needed.
  4. Click 'Run' to perform the conversion.
  5. Use 'Copy' or 'Download' to retrieve the result, or use 'Send To' to pipe it into another utility.

Examples

JSON array to CSV

Input

[{"name":"Ada","city":"Pune"}]

Example output

name,city
Ada,Pune

CSV with quoted comma to JSON

Input

name,city
Ada,"Pune, IN"

Example output

[
  {
    "name": "Ada",
    "city": "Pune, IN"
  }
]

Edge cases

CRLF line endings

JSON to CSV output separates rows with CRLF (\r\n), following common CSV practice. CSV to JSON accepts LF, CRLF, and CR line breaks.

Nested data rejected

Objects or arrays inside a row are rejected with an explicit error. Flatten the data before converting instead of expecting automatic flattening.

Ragged rows rejected

CSV rows with more or fewer fields than the header row fail with a parse error rather than producing misaligned objects.

Duplicate headers rejected

CSV input whose header row contains duplicate column names is rejected; headers must be unique.

Empty array

An empty JSON array converts successfully to an empty CSV document instead of failing.

Direction-specific options

The header and formula-escaping options have no effect in the CSV to JSON direction, while type parsing has no effect in the JSON to CSV direction.

How it works

  1. JSON to CSV parses the input and requires a JSON array whose elements are all flat objects.
  2. Column order follows the first appearance of keys across rows.
  3. CSV to JSON requires a unique header row and parses quoted fields, including delimiters inside quotes.
  4. Formula escaping prepends an apostrophe to risky cells only when enabled, and raises a FORMULA_ESCAPED warning.
  5. Executes inside a Web Worker bounded by the tool deadline.

Frequently asked questions

Can I convert nested JSON to CSV?

No. CSV is a flat two-dimensional table format, so rows containing nested objects or arrays are rejected. Flatten the structure first so every value is a string, number, boolean, or null.

Is anything lost converting between JSON and CSV?

Column order follows key appearance, CSV output uses CRLF line endings, and values that look numeric stay strings unless type parsing is enabled. With the header row included, a round trip preserves flat string data but not formatting details; headerless output cannot be parsed back as CSV to JSON.

How are commas and quotes inside values handled?

Fields containing the delimiter, quotes, or line breaks are wrapped in double quotes, with inner quotes doubled. The CSV to JSON direction parses that quoting back into the original values.

Does CSV to JSON keep numbers as numbers?

By default, no: every CSV cell arrives as a string. Enable the type-parsing option to convert numeric and boolean strings into native JSON types.

How do I export CSV safely for spreadsheets?

Enable formula escaping before converting. Cells starting with =, +, -, or @ get a leading apostrophe so spreadsheet apps do not execute them as formulas. This changes the cell values and is off by default.

Is my pasted input uploaded anywhere?

No. Conversion runs inside an isolated Web Worker in your browser, and pasted input is not uploaded for processing. The browser still requests site assets from the host; clipboard, downloads, and analytics are separate boundaries.

References