CSV to JSON

Convert CSV into JSON — objects (with headers) or arrays. Free, in your browser.

Parses CSV (quoted fields supported) into JSON, in your browser.

Free to use — premium coming soon

FREE
  • Header or array mode
  • Quoted-field support
  • 100% private
PREMIUM
  • Remove ads
  • Type inference & custom delimiters

About the CSV to JSON

CSV to JSON turns a flat, comma-separated table into structured JSON your code can actually use. The standard conversion reads the first line of your file as the header row, then maps each header to the matching cell in every following row. The result is an array of objects, where each object is one record and each key is a column name. So a file beginning with name,email,age followed by Jane,jane@site.com,31 becomes a JSON object with name, email, and age keys. This is the shape almost every JavaScript framework, REST API, and document database expects, which is why a quick paste-and-convert beats hand-editing brackets by hand.

Reach for this tool whenever tabular data needs to cross into a code or API world. Common jobs include seeding a MongoDB collection from a spreadsheet export, feeding rows into a React or Vue table component, building a small JSON config or fixtures file from a CRM or analytics download, and prototyping an endpoint before a real database exists. Because CSV is what Excel and Google Sheets produce on export, this conversion is often the first step between a non-technical data source and an application. JSON's nesting and explicit types make the same data far easier to validate, query, and pass between services than a flat sheet.

Under the hood, conversion is mostly careful parsing. Each line is split on the delimiter, but a good parser does not split blindly: a field wrapped in double quotes can legally contain commas, line breaks, and even quotes of its own. Per RFC 4180, a literal quote inside a quoted field is written as two consecutive quotes, so ""Ada"", Lovelace" is one value, not two. After splitting, the tool can optionally infer types, turning the text 42 into a JSON number and true into a boolean, since CSV stores everything as plain text while JSON distinguishes numbers, booleans, strings, and null.

Type inference is powerful but worth treating with care. Numeric-looking strings such as ZIP codes (01234) or phone numbers lose their leading zeros or precision if forced into numbers, so identifiers should usually stay strings. When that matters, leave inference off and keep every value as text, then cast deliberately in your code. On privacy: this converter runs entirely in your browser. The CSV you paste or upload is parsed locally with JavaScript and never sent to a server, so customer lists, exports, and other sensitive tables stay on your machine while you work.

Frequently asked questions

How does the first row become the JSON keys?

By default the tool treats line one as the header row and uses each column name as an object key. Every later row becomes one object, mapping those keys to its cell values. If your file has no header, you can switch to an output that uses numeric indexes or arrays instead.

Will it handle commas inside a field?

Yes, as long as the field is wrapped in double quotes per the CSV convention. The parser keeps quoted commas, line breaks, and escaped quotes (written as two double quotes) inside a single value instead of splitting on them.

Are numbers converted to real numbers or kept as text?

You choose. With type inference on, values like 42 and true become a JSON number and boolean; with it off, every value stays a string. Turn inference off for ZIP codes, phone numbers, or any ID with leading zeros, since those break when treated as numbers.

My file uses semicolons, not commas. Will it work?

Set the delimiter to a semicolon and it will parse correctly. Semicolon-delimited files are common from Excel in European locales, where the comma is the decimal separator. Tab-separated (TSV) files are also supported by choosing the tab delimiter.

Is my data uploaded anywhere?

No. The conversion happens entirely in your browser using JavaScript, so your CSV is never transmitted to a server. You can convert sensitive exports offline and copy the JSON straight out.

From our blog

How to Build UTM Links That Keep Your GA4 Reports Clean

By the Super Simple Digital Tools Team · Updated June 2026

Marketing links are only as useful as the data they generate. When someone clicks an untagged link from an email or social post, GA4 frequently files that visit under direct or an unhelpful referral, and the channel that actually earned the click gets no credit. UTM parameters fix this by attaching small labels to the URL that travel with the click and feed straight into your analytics dimensions. A UTM link builder exists so you set those labels deliberately and identically every time, rather than hand-typing query strings and introducing typos that quietly split your reporting.

Start with the three parameters Google treats as essential. utm_source answers where the link physically lives, such as a specific newsletter, a partner site, or a platform like linkedin. utm_medium describes the channel category, and it pays to match the values GA4 already understands, like email, cpc, organic_social or paid_social, so traffic lands in the correct default channel group instead of Unassigned. utm_campaign names the initiative the link belongs to, for instance black-friday-2026. Together these three turn an anonymous click into a row you can compare against every other channel.

The two optional parameters add depth when you need it. utm_term was originally meant to capture the paid search keyword behind a click, and it still serves that purpose for manually tagged ad links. utm_content distinguishes two links that share everything else, which makes it the natural home for A/B tests and creative variants, for example hero-button versus footer-button, or image-a versus image-b. You do not have to use them on every link; reach for them only when the extra granularity will change a decision you make later.

Consistency is the single rule that separates clean data from a mess. Because values are case sensitive, decide once on a format and never deviate: all lowercase, hyphens between words, and a fixed vocabulary for source and medium. Write the convention down in a shared document so a teammate tagging an email next month uses email rather than E-mail or Email Newsletter. Build the full URL in the tool, copy it, and test it by clicking through to confirm it loads the right page before it goes live in a campaign that may run for weeks.

Finally, treat tagging as part of how you measure, not an afterthought. Keep a simple spreadsheet log of the links you create so you can reuse exact spellings and audit what is live. Reserve UTMs for links that originate outside your own domain, and never reuse the same campaign name for two unrelated efforts. With disciplined tags in place, the Traffic acquisition report in GA4 becomes a reliable scoreboard, showing which sources, mediums, and campaigns actually drive sessions and conversions.

  • Always lowercase your values and use hyphens for spaces, since email and Email count as two separate mediums in GA4.
  • Match utm_medium to GA4's known channels (email, cpc, paid_social, organic_social) so traffic avoids the Unassigned bucket.
  • Never add UTM tags to internal links on your own site; they restart the session and overwrite the real source.
  • Keep a shared spreadsheet of every link you build so spellings stay identical and past campaigns are easy to audit.

Read the full guide →

Tool by the Super Simple Digital Tools Team. Reviewed by our editorial team. Free to use, no signup required.

Related tools