DEV Community

HAU
HAU

Posted on

Convert CSV or Excel to JSON in Your Browser — No Upload, No Server

The Tool

JSON Buddy includes a CSV/Excel converter that runs 100% client-side. Click the CSV/Excel to JSON tab in the toolbar and you get a dedicated conversion panel. No account, no upload, no file sent anywhere.


Supported Input Formats

Format Extension Notes
CSV .csv Comma-separated, UTF-8
TSV .tsv Tab-separated (also works if you paste directly from Excel)
Semicolon-separated .csv Common in European locales
Pipe-separated .txt `
Excel {% raw %}.xlsx, .xls Upload the file directly

The delimiter is detected automatically. You can also override it manually.


How to Use

Option 1: Upload a file

  1. Click CSV/Excel to JSON in the toolbar
  2. Drag & drop your .csv or .xlsx file onto the upload area
  3. The JSON output appears instantly on the right

Option 2: Paste directly

If you copied a table from Excel, Google Sheets, or Notion, just paste it into the text area. Tab-delimited content (the default clipboard format for spreadsheets) is parsed automatically.

name    age city    active
Alice   30  Berlin  true
Bob 25  Paris   false
Carol   35  Tokyo   true
Enter fullscreen mode Exit fullscreen mode

Paste that and get:

[
  { "name": "Alice", "age": 30, "city": "Berlin", "active": true },
  { "name": "Bob",   "age": 25, "city": "Paris",  "active": false },
  { "name": "Carol", "age": 35, "city": "Tokyo",  "active": true }
]
Enter fullscreen mode Exit fullscreen mode

Automatic Type Inference

By default, JSON Buddy infers types from cell values:

Cell value JSON type
42 number (integer)
3.14 number (float)
true / false boolean
null / empty null
"hello" string

So a column of ages becomes a JSON number array, not a string array — which is almost always what you want when seeding a database or writing tests.

You can toggle type inference off if you need everything as strings.


Real Examples

Seeding a database

You have a users.csv from a staging database export:

id,name,email,role,created_at
1,Alice,alice@example.com,admin,2024-01-15
2,Bob,bob@example.com,user,2024-02-20
3,Carol,carol@example.com,user,2024-03-05
Enter fullscreen mode Exit fullscreen mode

Output:

[
  {
    "id": 1,
    "name": "Alice",
    "email": "alice@example.com",
    "role": "admin",
    "created_at": "2024-01-15"
  },
  ...
]
Enter fullscreen mode Exit fullscreen mode

Paste this directly into your seed script or API test fixture.

Mocking an API response

You're building a front end and the back end isn't ready. Export a table from Notion, convert to JSON, drop it into your mock server or public/mock-data.json.

Data pipeline testing

A data engineer sends you a .xlsx with sample records to validate your ingestion pipeline. Upload it, get JSON, feed it to your tests — without ever writing a pandas script.


Copy the Output Back to the JSON Editor

Once your data is converted, there's a "Use in Editor" button that loads the JSON into the main formatter. From there you can:

  • Format and inspect it in the tree view
  • Run it through the Code Gen to generate typed structs for your language
  • Use Find & Replace to do a bulk value substitution before using it

Why Not Just Use Python?

You can, of course:

import csv, json

with open('data.csv') as f:
    rows = list(csv.DictReader(f))
print(json.dumps(rows, indent=2))
Enter fullscreen mode Exit fullscreen mode

But that requires Python installed, a terminal, writing and running a script. For a quick one-off conversion during development, a browser tool is faster. And for non-developers (PMs, data analysts, QA engineers), a no-code option is often the only practical one.


Privacy Note

The file never leaves your browser. For Excel files, the parsing uses the SheetJS library running client-side. No file data is transmitted anywhere.

This matters when the spreadsheet contains:

  • Customer PII (GDPR-relevant)
  • Financial data
  • Internal employee records
  • Unreleased product information

Try It

👉 json-formatter.net — click the CSV/Excel to JSON tab

Works on desktop and mobile. Installable as a PWA for offline use.


Also in this series:

Top comments (0)