Filethimble
Small files. Real conversions.

CSV to JSON converter

Turn a CSV or TSV table into a real JSON array. Check the parsed fields, then copy or download the result. Free, local to your browser, without an account.

Your file, headers and cell values stay on this device and are excluded from optional website analytics.

The first record is the header. All cell values stay strings, including 0012, false and 4.50.

Read on your device; nothing is uploaded.

Browser limits: 1,000,000 UTF-8 input bytes, 5,000 data rows plus a header, 100 columns and 4,000,000 output bytes. Plain text only. Choose the separator explicitly; the .tsv file extension selects Tab for convenience. Every record must have the same number of fields.

Your JSON

Choose Convert to JSON to produce a fresh result.

Keep file conversions close with Filethimble.

The Android app supports CSV, TSV and flat JSON table conversion, plus Markdown-to-PDF export. This page focuses on CSV-to-JSON. Its browser result does not automatically transfer to the app.

Get it on Google Play

A small order, with the details intact

Our original example has four headings: sku, item, quantity and unit_price. Its two records include a leading-zero SKU, a comma inside “Ribbon, cream,” and an accented café label. Choose Load example, then Convert to JSON. The result has two objects and four properties per object. The first SKU is the string “0012,” its quantity is “3,” and its price is “4.50.” No rounding, currency conversion or numeric inference changes these cells.

Why quoted commas and line breaks matter

A comma inside a quoted cell belongs to that cell. A double quote inside a quoted cell is written twice. A quoted cell may also contain a line break. Splitting every line at each comma would break those records; this parser follows field boundaries instead. Record endings may be LF, CRLF or CR. Line breaks inside quoted cells are retained. A final record ending is optional.

CSV has several dialects. This tool uses strict double-quote rules with your chosen comma, tab or semicolon separator. It rejects an unclosed quote, a quote inside an unquoted field, or text after a closing quote. Fix the input rather than accepting a guessed conversion. See the RFC 4180 informational CSV format reference for the common quoting convention.

Headers become property names

The first record supplies JSON keys. Every heading must be non-empty and unique, and every data record must contain the same number of fields. Spaces and letter case are retained, so “Item” and “item” are different names. Whitespace-only headings are rejected. A blank data cell becomes an empty string; it is not silently dropped or changed to null. Completely blank extra records can cause a field-count error and should be removed if they were not intended.

Keep identifiers as text

Postal codes, inventory codes and long reference numbers can lose meaning if converted into numbers. This converter intentionally keeps every cell as a string. Values such as true and null remain text too. If your receiving system requires typed numbers or nested objects, adjust the resulting data deliberately in that system. This tool produces a flat array of objects and does not infer schemas or turn dotted headings into nested properties.

Check the result before using it

The preview shows the first five parsed records, while the JSON output contains every accepted record within the limits. Verify field boundaries and compare the row and column counts. Copy JSON uses the clipboard where permitted, with a keyboard-copy fallback. Download JSON creates a real UTF-8 .json file; it is not an XLSX spreadsheet or PDF. The source and output clear when you refresh or leave the page.

Can I upload an Excel workbook or convert any file?

No. Export the relevant sheet as UTF-8 CSV or TSV first. Binary files and invalid UTF-8 are rejected. This browser tool does not fetch remote URLs, process nested JSON, generate Markdown PDFs or claim arbitrary-format conversion. It reads the local file you choose using browser file APIs.

Are formulas executed?

No. Cells are serialized as JSON strings and displayed as text. Nothing in a cell runs as a formula, HTML or JavaScript. If you later load those strings into a spreadsheet, that spreadsheet may interpret formula-like text according to its own rules; review that separate export step.