CSV to JSON converter
Convert comma, tab or semicolon-separated text into JSON locally. Handle quoted fields, preserve text values and inspect a table preview.
JSON output
Preview the first twelve data rows below the workspace.
Up to 1,000 input rows, 100 columns and 200,000 characters. Values are treated as text.
Inputs are processed in this tab. No text, paths or results are sent to our server or saved in an account. Privacy details.
From input to a useful answer.
- 01
Choose comma, tab or semicolon to match the data.
- 02
Decide whether the first row contains column names.
- 03
Review the preview and JSON before using it elsewhere.
Keep every cell value as a string
The converter preserves cell text rather than guessing numbers, dates or Boolean values. An identifier such as 00123 remains a string with its leading zeroes. The same applies to 02, true and an empty cell: conversion should not silently decide column meanings.
With headers enabled, each data row becomes an object using the first row’s labels. Without headers, the output is an array of row arrays, preserving position without inventing property names. Choose the shape required by the application that will read the JSON.
Choose a delimiter and use strict quoting
Comma, tab and semicolon are explicit choices, not guesses based on an extension or regional setting. Quoted fields may contain the selected delimiter or a line break. A literal quote inside a quoted field is represented by two quotes.
A quote must begin a field. After its closing quote, only a delimiter, line ending or the end of input is accepted. Stray text and unclosed fields cause errors. Spaces remain significant, so unnecessary spaces outside a quoted field can prevent expected parsing.
Check the shape and parser limits
Headers must be non-empty after a blank-name check and unique as entered. Non-empty labels otherwise retain whitespace and case. Every data row must match the header’s field count, catching common missing-delimiter and unquoted-comma mistakes before they produce misleading objects.
Limits are 200,000 input characters, 100 columns and 1,000 total input rows, including a header. An initial Unicode byte-order mark is stripped, and common line endings are accepted. The tool does not infer types, apply a schema, calculate spreadsheet formulas or validate individual cell meanings.
References
RFC 4180 — Common CSV quoting and records ↗RFC 8259 — JSON data types ↗A few useful answers
Why are numbers quoted in the JSON?
Each cell remains a string, including digits and leading zeroes. Convert selected columns only when you know their intended types.
Why does an extra comma make a row fail?
With headers enabled, that row no longer matches the header’s field count. Quote commas that belong inside values, or fix the delimiter choice.
Does it trim header names?
No. It rejects blank or duplicate names but preserves non-empty labels and cell whitespace as entered.