DATA CONVERTERS

CSV ↔ JSON Converter

Convert tabular data, check a preview, and download the result. Processing stays in your browser.

Conversion options

CSV values stay strings, including 00123. Headers must be unique and nonblank. Quoted empty fields are kept when blank records are skipped. Without headers, output is an array of rows.

Paste data, open a UTF-8 file, or load an example.

    CSV input

    Files: UTF-8, up to 1 MB. Input: up to 1,000,000 UTF-16 units.

    JSON output

    Editing input or options clears the old result so you always export the current conversion.

    Data rows —Columns —Input bytes 0Output bytes 0Delimiter used —

    Table preview

    Convert data to see a table preview.

    Formats, accuracy & limits

    JSON input must be an array of objects or an array of equal-length arrays. Mixed row types, duplicate JSON properties, blank CSV headers and uneven CSV rows are rejected. Nested values require the explicit compact-JSON option.

    CSV cannot retain the difference between a JSON string, number, boolean, null or missing property. A reverse conversion therefore does not restore those types. JSON number spellings are preserved when writing CSV; CSV input always becomes strings.

    The preview shows original values before spreadsheet protection, up to 50 rows and 20 columns. Long preview cells are shortened; full output remains available. Conversion limits: 10,000 data rows, 200 columns and 50,000 cells; JSON also uses the formatter’s value/depth limits. Output is limited to 4,000,000 UTF-16 units. A local worker stops after 8 seconds. Data is not stored or uploaded.

    Using CSV ↔ JSON Converter

    Move tabular data between CSV and JSON. Preview the rows before copying or downloading a complete result.

    1. Choose CSV → JSON or JSON → CSV, then paste data, open a UTF-8 file or load an example.
    2. Set the delimiter and header option. Open conversion options only if you need different formatting, nested-value handling or spreadsheet protection.
    3. Convert, review errors and notes, inspect the preview, then copy or download the output.

    Example

    CSV input: name,id
    Ada,00123
    JSON output: [{"name":"Ada","id":"00123"}]
    The ID stays a string, so its leading zeros survive.

    Questions & answers

    Will CSV numbers lose their leading zeros?

    No. CSV input becomes JSON strings by default and has no automatic type inference. A value such as 00123 stays "00123".

    Will large JSON numbers be rounded?

    No. The existing JSON parser preserves number tokens when writing CSV, including 9007199254740993. CSV has no numeric type, and other applications may reinterpret the resulting text.

    What JSON structure can I convert?

    Use an array of objects or equal-length arrays. Object keys become columns in first-seen order across all rows. Missing properties become empty cells. Nested values are rejected unless you choose compact JSON in cells.

    What happens to blank or duplicate headers?

    Header names must be nonblank and unique. Fix them or turn off the header option to use an array of rows. Duplicate JSON property names are also rejected to avoid ambiguous table data.

    Why can a reverse conversion change data types?

    CSV has no JSON types. JSON numbers and booleans become CSV text. Null and missing values can become empty cells, and converting CSV back to JSON creates strings. Reversing formats does not restore the original types.

    What does spreadsheet protection change?

    It adds an apostrophe to cells with formula-like prefixes, including headers. This deliberately changes those values. It is off by default; review the output and notes before importing it into a spreadsheet.

    Is the preview the complete output?

    No. It shows up to 50 rows and 20 columns, with long cells shortened. The output and downloads contain all converted rows within the stated limits. Preview values appear before spreadsheet protection.

    Are my files uploaded or stored?

    No. Conversion runs in a locally bundled browser worker. Tool inputs and outputs are not stored or uploaded. Files must be UTF-8 and no larger than 1 MB; processing has input, row, column, cell and timeout limits.

    Help improve this tool

    Report a problem or suggest an improvement

    Describe the issue without pasting private tool input. Feedback goes to our admin inbox.

    Find another tool · Read practical guides