Move structured records between formats
This JSON CSV converter turns arrays of records into spreadsheet rows and converts header based CSV back into JSON objects. Use it to inspect an API example, prepare a small import fixture, or review a data export before handing it to another system. Select the direction and delimiter, then press Convert. Check several resulting rows against the source before importing the entire result. A filename alone does not establish its format: a file ending in JSON can still contain a trailing comma. Invalid input produces an error instead of a partial conversion.
How records become columns
JSON input must be a nonempty array of objects. A standalone object, an array of primitive values, and an empty array are rejected. Columns use the union of record keys in the order those keys are first encountered. Missing properties and null values become empty CSV cells, so the distinction between them cannot survive a round trip. Nested objects and arrays become JSON text inside one cell; the tool does not flatten them into dotted columns. Converting that CSV back produces a string in the nested cell, without automatically parsing its contents.
Delimiters, quotes and line endings
Choose a comma, semicolon, or tab as the field separator. A cell containing that separator, a quotation mark, or a line break is enclosed in double quotes. An embedded double quote is written twice. Line breaks within quoted fields remain part of the field rather than starting another record. Output records use CRLF endings; input accepts CRLF, LF, and CR. A leading UTF-8 byte order mark is removed during CSV reading. An unclosed quotation mark or unexpected characters following a closing quotation mark are rejected, avoiding ambiguous interpretation of malformed rows.
Headers and value types
The first CSV row supplies property names. Empty headers, duplicate column names, and records with the wrong number of cells produce an error instead of dropping information. Every CSV cell becomes a JSON string. An identifier such as 00123 therefore keeps its leading zeroes, and the text true does not turn into a boolean. An empty cell becomes an empty string. JSON numeric values have a deliberately conservative precision limit: unsafe integers and values containing more than fifteen significant mantissa digits are rejected. Store long identifiers and precise decimal amounts as quoted JSON strings before conversion.
Spreadsheet formula protection
Formula protection is enabled by default. The exporter prefixes an apostrophe to cells beginning with equals, plus, minus, or an at sign, including after whitespace. It also protects column headings. This reduces the risk of a spreadsheet interpreting imported text as a formula, but it changes the underlying value. Negative numeric values can consequently be exported as protected text. Disable the option deliberately when another program requires raw CSV values. Review the receiving application and its import settings; this transformation is a practical precaution rather than a guarantee covering every spreadsheet product or import workflow.
Example, download and privacy
For example, [{"code":"001","name":"İpek"}] becomes code and name headings followed by the values 001 and İpek. JSON downloads use a .json extension, while CSV downloads use .csv. The optional UTF-8 BOM affects only a CSV download, leaving copied output unchanged. Select UTF-8 when importing into software that does not detect it reliably. Conversion runs locally in the browser without uploading records. If you explicitly include inputs in a shared link, recipients can read that data from the fragment. Each input is limited to 500,000 UTF-16 code units; use a local script for larger exports. The product of row and column counts cannot exceed 100,000 cells, preventing sparse records from expanding into an excessive table. Repeated CSV header names in JSON are limited to two million total characters.
Frequently asked questions
Why are CSV numbers returned as strings?
CSV cells carry no reliable type metadata. Keeping them as strings preserves leading zeroes, long identifiers, and values that resemble dates. Perform any required type conversion with an explicit schema in the receiving application.
Is a round trip lossless?
Not in every case. JSON null and missing properties become empty cells, nested structures become text, and formula protection adds apostrophes. Converting back does not automatically restore original JSON types or undo those transformations.
Should I enable the UTF-8 BOM?
Some spreadsheet versions detect international characters more reliably with a BOM. The option applies only to CSV downloads. Still check the encoding and delimiter selected by the application when importing the resulting file.
Does the tool upload records?
No. Conversion happens locally in your browser. Including inputs in a shared link makes them readable to recipients. Share limits are smaller than conversion limits; keep larger results as local files instead of trying to embed them in links.