Semicolon to JSON array
What the semicolon to JSON array converter does
Paste a semicolon-separated list and this app splits it on every semicolon, trims each value, and returns a formatted JSON array. Same job as the comma converter, aimed at the delimiter a large share of the world actually exports spreadsheets with.
It's local. The split runs in your browser, not on a server, so nothing you paste is uploaded and there's no limit on how many lists you convert.
Where the format comes from
Why European CSV exports use a semicolon, not a comma
In much of Europe and plenty of other locales, the comma is the decimal separator, so three and a half is written '3,5' rather than '3.5'. A spreadsheet set to one of those locales can't use a plain comma as its field separator without it constantly colliding with decimal commas already in the numbers.
So Excel and similar tools switch the field separator itself to a semicolon whenever the regional settings put a comma at the decimal point. The file's still called a CSV and opens the same way, but the character actually separating columns is a semicolon.
Workflow
How to convert a semicolon list to JSON in three steps
Nothing to configure, no locale setting to pick first.
- Step 1
- Paste your semicolon-separated list into the input field.
- Step 2
- Press Convert. The split and trim happen instantly, locally.
- Step 3
- Copy the JSON array from the output panel.
Why it matters
What breaks when you assume the wrong delimiter
Open a semicolon-delimited European export with a tool that assumes commas, and one of two things happens: the whole row reads as a single column because there's no comma to split on, or worse, a decimal comma inside a number gets mistaken for a boundary and a price gets silently split in two.
That's a quiet source of wrong data rather than an obvious error, which is exactly why matching the delimiter to the real export matters more here than for a plain comma list.
The underlying reason
Why the comma stays safe inside a semicolon-delimited value
Because the semicolon does the delimiting here, not the comma, a value like '3,5' for a decimal, or 'Doe, Jean' for a name, passes straight through unharmed. The comma inside the value is just text to this converter, only a literal semicolon counts as a boundary.
That's the whole point of the format: it lets locales that use a comma as a decimal point keep using commas normally in their data, while still having an unambiguous character to separate fields.
Straight answer
Does it handle quoted fields like a full CSV parser?
No, like the comma converter, this is a plain delimiter split, not an RFC 4180-style parser with quoting rules. A semicolon inside a quoted field, rare but possible, would still be treated as a boundary here.
For the vast majority of semicolon-separated lists, plain values with no semicolon of their own, this never matters. It only surfaces with genuinely quoted, semicolon-containing fields, which are uncommon.
Who it's for
Who uses a semicolon to JSON array converter, and when
Developers integrating with European accounting, ERP or government data exports use it to get a semicolon-delimited row into JSON without reconfiguring a full CSV parser for one file. Anyone who's opened a '.csv' from a French, German, Italian or Spanish source and found everything bunched into one column reaches for it once they realise the real separator is a semicolon.
Localisation and data teams use it to normalise exports from multiple regions into one consistent JSON shape before feeding them into an API.
What comes out
A decimal like '3,5' comes back as a string, not a number
JSON.stringify never infers type here, so every value in the array comes back as a string, quotation marks included, even one that looks purely numeric. A European-style decimal like '3,5' converts to the string "3,5", exactly as written, comma and all.
That's actually the safer default for this format specifically. Guessing that '3,5' meant the number 3.5 would require assuming a locale, and getting it wrong would silently corrupt the value. Leaving it as a string and converting deliberately afterward, with the locale you actually know, avoids that mistake.