Convert CSV to JSON
Convert CSV to JSON in your browser: load your CSV, choose JSON as the target, and download the result. This conversion preserves every value in your data, and nothing is uploaded to a server.
Convert CSV to JSONRuns in your browser. Nothing uploaded.
When you need this
An export arrives as CSV and the API you are feeding wants JSON. This is the most common conversion in the set and the one most often got wrong by hand, because the interesting decisions — types, empty cells, duplicate headers — are all invisible until something downstream breaks.
How to convert CSV to JSON
- Load your CSV
- Drag the .csv file in, or paste the rows. An export from Excel, Numbers or a database client works unchanged, including a quoted header row. Nothing leaves your browser at this or any later step.
- Choose the target format
- Press Ctrl+Shift+K (Cmd+Shift+K on a Mac) to open the conversion panel, then pick JSON as the target. The source and the result sit side by side.
- Read the loss report
- The panel shows whether the conversion is lossless for your particular data, and lists every value it had to transform. Adjust indentation, key sorting and null handling if you need to.
- Take the JSON
- Download the .json file, copy it, or open it as a new tab to keep working on it in the JSON views.
What survives the conversion
CSV to JSON is lossless for your data: convert back and every value returns. Formatting does not survive — comments and whitespace are lost by every conversion in every direction, in every tool.
- Numbers and booleans become JSON types rather than strings, which is what almost everyone wants — but it means an identifier like
007becomes7. If a column is an identifier rather than a quantity, check it. - The header row becomes the object keys. A file with no header produces keys from the first row of data, which is worth noticing before you send it anywhere.
- An empty cell becomes an empty string, not
null. The file does not distinguish "blank" from "absent", so inventing a null would be inventing information.
A worked example
Type inference, including the case that catches people out:
id,code,active
1,007,true[
{
"id": 1,
"code": 7,
"active": true
}
]Privacy
The conversion runs in your browser — in a Web Worker for anything above a quarter of a megabyte, so the page stays responsive. Your data is not uploaded, not logged and not stored. There is no account, and the whole thing works offline.
Questions
How do I stop my zero-padded codes turning into numbers?
Turn type inference off in the conversion panel and every column comes through as a string, which is the right choice when the CSV holds identifiers — postcodes, SKUs, phone numbers, leading-zero references. The example above shows why: 007 becomes 7, and the leading zeros cannot be recovered afterwards.
Is converting CSV to JSON lossless?
For the data, yes — every value survives a round trip. Formatting does not: comments, whitespace and in some cases key order are lost by any conversion between these formats. Each row becomes an object keyed by the header. Types are inferred from the values.
Is my CSV uploaded to a server?
No. The file is read and converted by your browser. Nothing about its contents is sent anywhere, which you can verify in your browser’s network panel or by using the tool with the network disconnected.