CSV til JSON-konverter
Lim inn CSV (eller TSV) til venstre, få en JSON-array av objekter til høyre. Overskrifter auto-detekteres. Ingen opplasting.
- Lim CSV-en din inn i tekstområdet til venstre.
- Klikk «Konverter til JSON». Første rad behandles som overskrifter.
- Kopier JSON-arrayen eller last ned som data.json.
- TSV (tab-separert) og andre skilletegn detekteres automatisk av PapaParse.
Hva gjør det?
Parser CSV (RFC 4180-aktig) til en JSON-array der hver objektnøkkel matcher en overskriftskolonne. Siterte felter, innebygde komma, escape-doblede anførselstegn og CRLF / LF-linjeskift håndteres alle. Tall, booleanske og null-lignende verdier ("true", "false", tomt) typifiseres automatisk. Skilletegnet auto-detekteres — du kan lime inn TSV, semikolon- eller pipe-separert data og det vil fortsatt fungere.
Eksempel
CSV-inndata:
name,age,role
Ada,36,engineer
Grace,40,scientist JSON-utdata:
[
{"name": "Ada", "age": 36, "role": "engineer"},
{"name": "Grace", "age": 40, "role": "scientist"}
] Vanlige CSV-fallgruver og hvordan håndtere dem
CSV ser enkelt ut men har flere kanttilfeller enn folk forventer. Disse mønstrene gir overraskende utdata.
- Innebygde komma uten sitering. Et felt som `Smith, John` (uten omsluttende sitering) splittes i to kolonner. Pakk inn i doble anførselstegn: `"Smith, John"`.
- Doble anførselstegn i feltet. Inne i et sitert felt escapes en bokstavelig `"` ved å doble den: `"He said ""hi"""` dekodes til `He said "hi"`. Backslash-escape (`\"`) er ikke standard og ikke støttet.
- Inkonsekvent antall kolonner. Rader med færre kolonner enn overskriften får null for manglende nøkler; rader med flere kolonner rapporteres som parser-advarsel. Konverteringen fullfører, men sjekk utdata.
- Numeriske ID-er som mister foranstilte nuller. `007` parses som tallet 7, ikke strengen "007". Hvis foranstilte nuller betyr noe (postkoder, telefonnummer), forhåndsbehandle ved å sitere feltet — siterte verdier kan parses som strenger hvis du slår av dynamisk typing nedstrøms.
- BOM ved filstart. Excel-lagrede CSV-er inkluderer ofte et UTF-8 byte-order-mark (`\uFEFF`) ved start. Parseren fjerner det, men limer du inn rå byte fra en hex-editor kan du se BOM som et avvikende tegn på første overskrift.
- Blandede linjeskift. CRLF (Windows), LF (Unix) og CR (gammel Mac) gjenkjennes alle. Hvis utdata ser ut som én gigantisk rad, har filen kanskje ingen linjeskift i det hele tatt — vanlig når CSV genereres ved å konkatenere uten `\n`.
Ofte stilte spørsmål
Støtter dette tab-separerte verdier (TSV)?
Ja. PapaParse auto-detekterer skilletegnet fra første kilobyte. Tab, semikolon, pipe og komma fungerer uten konfigurasjon. Hvis deteksjonen velger feil (sjelden på ekte data), separer feltene tydeligere eller forhåndsbehandle.
Hva om CSV-en min ikke har overskriftsrad?
Gjeldende konfigurasjon antar at første rad er overskrifter. Hvis CSV-en er uten overskrift, sett en syntetisk rad som `a,b,c` foran før liming — eller konverter med `header: false` i PapaParse på kommandolinjen hvis du trenger array-av-arrays.
Hvordan håndteres datoer?
De forblir strenger. Parseren auto-typer kun tall og booleanske — datoparsing utelates med vilje fordi datoformat-tvetydighet (`01/02/03` er 2. januar i USA, 1. februar i Storbritannia) er for risikabelt å gjette. Parser dem nedstrøms der du kjenner kildens konvensjon.
Kan jeg konvertere virkelig store CSV-filer?
Opp til ca. 50 MB før nettleseren føles treg. Flaskehalsen er tekstområdet, ikke parseren — for større filer kjør PapaParse på kommandolinjen. Biblioteket er det samme.
Lastes CSV-en min opp?
Nei. Alt kjører i nettleseren din — dataene parses av JavaScript på denne siden og sendes aldri til noen server. Verifiser i utviklerverktøyene: null nettverksforespørsler når du klikker Konverter.
Hvordan får jeg JSON i annen form (nestet, gruppert)?
Dette verktøyet produserer en flat array av flate objekter — det er det CSV representerer. For nestet struktur, etterbehandle utdataen med et skript (gruppere etter kolonne, transformere feltnavn med prefiks, osv.). Å forsøke å kode hierarki i CSV gir oftest flere problemer enn det løser.