KeroTools

Convert CSV to JSON for Developers

Turn CSV data into a ready-to-use JSON array for your code — processed locally, right in your browser.

Drop your file here or click to browse

CSV files (.csv)

Your data never leaves your device

Nothing to delete later

Safe for customer exports

Works in every modern browser

How it works

  1. 1

    Add your CSV

    Drop the file onto the page, or click to browse and select it.

  2. 2

    Check the keys

    Confirm the header row produced the property names you expect before copying.

  3. 3

    Copy or download the JSON

    Take the array straight into a request body, a seed file, or a test fixture.

Why use this tool

Header row becomes keys

The first line supplies the property names, so each row arrives as a readable object rather than a positional array.

Valid JSON out

Quotes, backslashes and line breaks inside values are escaped, so the result parses instead of throwing a syntax error.

Delimiter detected

Comma, semicolon or tab is read from the file rather than assumed, which matters for exports from European spreadsheets.

Nothing is uploaded

The parsing happens in your browser — the data never reaches a server.

No row limit

Bound only by your device’s memory, not by a free-tier cap on rows or file size.

Free with no account

No sign-up, no watermark, and no limit on how many files you convert.

Everything in a CSV is a string, and JSON knows the difference

This is the conversion’s defining property. A CSV has no types: `42`, `true` and `2024-03-15` are all just characters, and the meaning is supplied by whatever reads the file. JSON does have types — number, boolean, string, null — so a converter has to decide, for every cell, whether to emit `42` or `"42"`. Neither answer is universally right. Quoting everything is safe and forces the receiving code to cast; converting aggressively is convenient and destroys data, because a product code of `007` becomes the number 7 and a phone number beginning with a plus sign becomes something unrecognisable. Look at what came out before you use it, and treat identifiers as strings deliberately rather than hoping the guess went your way.

Why the header row matters more than in a spreadsheet

In a spreadsheet, a header is a label a human reads. In JSON it becomes a property name that code depends on. That changes what makes a good header. `Customer Name` is fine in Excel and awkward in code, where `customer_name` is what you want; a duplicated header silently overwrites a field, because an object cannot have two identical keys; an empty header cell produces a property with no name. A leading or trailing space is the worst of them, because `"name "` and `"name"` look identical on screen and are different keys entirely. Fix the header row before converting, not the JSON afterwards.

The shape you get, and the shape you may need

The output here is an array of objects — one object per row, keys from the header. That is what most APIs, seeders and JavaScript libraries expect, and it stays readable when a human opens it. It is not the only possible shape: some systems want an array of arrays with the header as the first element, and some want the whole thing wrapped in an envelope such as `{"data": [...]}`. Neither is a conversion problem so much as a five-second edit once you have the array — wrap it or reshape it in your editor rather than looking for a converter that emits exactly your variant.

CSV is flat, and JSON is not

A CSV is a rectangle: rows and columns, no nesting. JSON can express objects inside objects and arrays inside those. So a conversion from CSV can only ever produce a flat structure, and if your destination expects nesting — an order with a list of line items, a user with an address object — the flattening has to be undone in code afterwards. A common convention is to encode the nesting in the header, as `address.city` and `address.postcode`, then expand those dotted keys after conversion. Knowing this in advance saves you from concluding the converter is broken when it faithfully produces exactly what a flat file contains.

What this is usually for

The conversion is nearly always a step in getting real-looking data into code. A CSV from a client becomes seed data for a database. A spreadsheet of test cases becomes a fixture for a test suite. A price list becomes the payload for a bulk-update API call. A content export becomes the data file behind a static site build. In every one of these the destination is a program rather than a person, which is why JSON and not Excel is the target — a workbook is for the colleague who will read it, and JSON is for the code that will consume it.

Why local conversion matters for this file type

The CSVs people convert to JSON are exports: customer tables, order histories, user lists, product catalogues. A hosted converter receives all of it, and the file often contains personal data that a business is legally responsible for. Because this tool runs entirely in your browser, the file is read from disk into the page and the JSON written back with no network request carrying it, which you can confirm in the Network tab of developer tools. Pasting a customer export into a random online converter is one of the more common quiet data incidents in small companies, and it is entirely avoidable.

Common mistakes to avoid

  • Letting identifiers be converted to numbers. A product code of `007` becomes 7 and a long account reference loses precision; treat identifier columns as strings deliberately rather than accepting whatever the type guess produced.
  • Converting before fixing the header row. Header cells become property names — a duplicate silently overwrites a field, an empty one produces a nameless key, and a trailing space makes `"name "` a different key from `"name"`.
  • Expecting nested output from a flat file. A CSV is a rectangle; if the destination needs objects inside objects, encode the nesting in the headers as `address.city` and expand the dotted keys after conversion.
  • Assuming the JSON is safe to paste anywhere because it parsed. Valid JSON can still carry the wrong types — check a few rows of numbers, booleans and dates before wiring it into a system.
  • Uploading a customer export to an online converter to save two minutes. The file is usually personal data your business is accountable for; convert it locally instead.

How it compares

FeatureThis toolOnline convertersA script you write
Data uploaded to a serverNeverUsuallyNo
Setup requiredNoneNoneRuntime and dependencies
Delimiter detectedYesUsuallyWhatever you code
Row limitDevice memory onlyOften cappedNone
Account or sign-upNot requiredOften requiredNot required
PriceFreeFree / paid tiersYour time

Features

Array of objects output

The shape almost every API and library expects, rather than a nested array of arrays.

Automatic delimiter detection

Comma, semicolon or tab — inspected from the file instead of presumed.

Correct escaping

Quotes, backslashes, tabs and newlines inside a value are escaped so the JSON stays valid.

UTF-8 preserved

Accented Latin, Arabic, Turkish and other non-ASCII text survives unchanged.

Quoted fields respected

A comma inside quotation marks stays part of the value instead of splitting the record.

Large files supported

Tens of thousands of rows convert without an upload queue.

No installation

Nothing to download or install — it works on the web page.

Arabic & RTL friendly

Full interface in eight languages, including right-to-left Arabic.

Secure by default

Served over HTTPS, with no file tracking and no third-party upload.

Who uses it

Developers

Turning a client’s spreadsheet into seed data or a test fixture without writing a throwaway script.

QA engineers

Converting a sheet of test cases into a fixture a test suite can load directly.

API integrators

Building a bulk-update request body from a price or inventory export.

Static site builders

Turning a content export into the JSON data file a build step reads.

Frequently Asked Questions

No. The conversion runs entirely in your browser — your data is never uploaded, stored, or shared.

Yes. Every row and column is converted faithfully; the first row becomes the field names.

Yes — completely free, with no account, no watermark, and no limit on how many files you convert.