Skip to content
4all.tools

Convert JSON and CSV in Your Browser

Convert arrays of JSON objects to CSV or inspect CSV headers and convert rows to JSON, with explicit type and irregular-row choices.

Tool workspace

JSON to CSV and CSV to JSON

Convert arrays of JSON objects to CSV

Paste a JSON document or load one local .json file, then choose Inspect arrays. Arrays are listed with their paths and row counts, in pages of up to 200. Choose an array to inspect its complete union of object keys. Keys first seen in later rows are included, so this input produces both name and city columns:

{"people":[{"name":"Ada"},{"name":"Grace","city":"London"}]}

Reorder columns with the Move up and Move down buttons. An empty array has no keys to inspect; add unique column names before converting it. Choose a comma, semicolon, or tab delimiter, LF or CRLF record endings, and whether to add a UTF-8 BOM.

CSV has no JSON types. Numbers, booleans, null, missing properties, and empty strings can become indistinguishable empty or textual CSV cells. A one-column export with an empty last value keeps the empty cell explicit:

name
Ada
""

Inspect CSV before choosing JSON types

Paste CSV text or load one local .csv file, choose the delimiter, and choose how to handle fields beyond the header before selecting Inspect CSV. Headers must be unique and non-empty. After inspection, choose a type for each header, including generated headers. Nothing is inferred: each column stays a string unless you explicitly select number or boolean.

For example, 00123 remains the string "00123" by default. A short row omits the missing property by default. A long row fails under the default Reject policy; Extend adds names such as column_3 for extra fields. Empty cells can stay strings, become null, or be omitted. You can choose whether short rows omit or fill missing values.

The CSV reader supports quoted fields, doubled quote characters, delimiters inside quotes, and quoted multiline cells. It accepts LF and CRLF input. A leading UTF-8 BOM signature is removed for parsing and shown as a notice.

Formula protection and exact text

CSV text that starts with =, +, -, or @ is prefixed with an apostrophe by default to reduce spreadsheet formula execution risk. This can change the exact text. Turn protection off to export exact text. If protection would make two headers identical, the converter reports HEADER_PROTECTION_COLLISION and creates no result; choose exact text or edit the source headers, then retry.

JSON-to-CSV may also report loss of JSON type information or number precision. Review these warnings when CSV will be used as data rather than only displayed in a spreadsheet.

Browser limits and privacy

The 4 MiB file limit, 1,000,000 UTF-16 input units, 2,000,000 output units, 20,000 data rows, 200 columns, 100,000 code units per cell, 75,000 data-cell positions, and 20,000 preview units keep processing bounded. The preview is not the complete output; Copy all and Download request the retained full result only after you activate the corresponding button. A truncated preview is never copied as complete output.

Parsing and conversion run in a local Web Worker. Input is not sent to a server, put in the URL, or saved in browser storage. Errors identify JSON paths or CSV logical row, field, and physical line/column when available. Editing the active input clears its result; cancel stops the current Worker operation without changing the input.