Paste cells copied from a spreadsheet, or any delimited text, and press Convert to JSON. The reader follows spreadsheet quoting, so a separator, a line break or a quote inside a cell survives the trip, and the result is written with the browser’s own JSON writer.
Runs locally in your browserPaste cells copied from a spreadsheet, or any delimited text, and press Convert to JSON: the first row becomes the keys, every following row becomes one object, and the result is written with the browser's own JSON writer, so it always parses.
The reader follows spreadsheet quoting, so a separator, a line break or a quote inside a cell comes back exactly as it was written — including cells that would break a naive split.
In object mode the first row is the header. An empty header cell is named column1, column2 and so on, a name that appears twice gets _2 and _3 appended, and a row that holds more cells than the header gets extra keys named column4, column5 as well.
Rows with fewer cells keep every header key and fill the missing ones with empty strings, so all objects in one run have the same shape. Rows that are completely blank are skipped instead of producing empty objects.
A cell that starts with a double quote is read as quoted text: separators and line breaks inside it are ordinary characters, and a doubled quote ("") means one quote. Everything else is split on the separator you typed. If a quote is never closed the panel says so instead of guessing.
The separator field takes plain text — a point, a pipe or a plus sign is a character, not a pattern — and separators longer than one character work as well.
The result is JSON written by the browser, so it parses in any reader, with two-space indentation. Cells stay text: 39.00 comes back as "39.00" and 007 stays "007", and no value is turned into a number or a boolean behind your back.
A byte-order mark at the start is dropped, and \n, \r\n and \r line endings all work, which is what you get when the same cells are copied on different systems.
The conversion runs in this tab: nothing is uploaded and the tool itself sends no request. In Chrome, 500 rows convert in about 0.2 s, 2,000 rows in about 0.6 s, and 5,000 rows (a 486 KB result) in about 2 s, most of that syntax highlighting rather than parsing.
XLS and XLSX files are not read — only text you paste. Spellings stay as typed, so check the header line before you build a payload out of the result.