CSV (Comma-Separated Values) is een platte tekstindeling waarbij elke regel een gegevensrecord is en velden binnen een record worden gescheiden door een scheidingsteken, doorgaans een komma. CSV is al een standaard uitwisselingsformaat sinds de begintijd van personal computers en is vastgelegd in RFC 4180. Spreadsheets, databases en data-exporttools produceren allemaal CSV omdat het eenvoudig, compact en leesbaar is voor vrijwel elke programmeertaal.
JSON (JavaScript Object Notation) stelt gestructureerde gegevens voor als sleutel-waardeparen en geordende arrays. In tegenstelling tot CSV ondersteunt JSON geneste objecten, getypeerde waarden (getallen, booleans, null) en records met variabele lengte. Omdat JSON native wordt begrepen door JavaScript-engines, is het het dominante formaat voor gegevensuitwisseling tussen browser en server en voor REST API-responses. Deze eigenschappen maken JSON het standaardformaat voor web-API's, configuratiebestanden en NoSQL-databases zoals MongoDB en CouchDB.
CSV naar JSON converteren betekent elke rij van de tabel omzetten naar een JSON-object, waarbij de koptekstrij als eigenschapsnamen wordt gebruikt en de celwaarden als eigenschapswaarden. Het resultaat is doorgaans een JSON-array van objecten. Deze conversie is nodig wanneer je platte tabelgegevens wilt invoeren in een systeem dat gestructureerde JSON verwacht, zoals een REST API, een frontend-datatabelcomponent of een documentgeoriënteerde database.
Waarom dit hulpmiddel gebruiken?
Deze converter verwerkt je CSV in de browser, genereert JSON-uitvoer direct en stuurt je gegevens nooit naar een server.
⚡
Directe conversie
Plak CSV en ontvang JSON-uitvoer onmiddellijk. Geen wachten op een server of bestandsupload. De conversie vindt plaats terwijl je typt.
🔒
Privacy-eerst verwerking
Je gegevens blijven in je browsertabblad. Er wordt niets over het netwerk verzonden. Veilig voor interne datasets, referenties of persoonsgegevens die je machine niet mogen verlaten.
🔀
Automatische detectie van scheidingsteken
Het hulpmiddel herkent komma, tab, puntkomma en pipe als scheidingsteken. Je kunt het scheidingsteken ook handmatig instellen als je bestand een ongebruikelijk scheidingsteken gebruikt.
📋
Kopiëren of downloaden
Kopieer het JSON-resultaat met één klik naar je klembord of download het als .json-bestand. Direct klaar voor gebruik in je code, API-client of database-import.
Toepassingen van CSV naar JSON
Frontend-ontwikkeling
Converteer een CSV-export uit een ontwerptool of spreadsheet naar JSON om te gebruiken als mockdata voor React-, Vue- of Angular-componenten tijdens prototyping.
Backend API-seeding
Transformeer CSV-databasedumps naar JSON-payloads voor het seeden van een REST- of GraphQL-API. Veel ORM's en migratietools accepteren JSON-fixtures voor het laden van initiële gegevens.
DevOps-configuratie
Converteer CSV-inventarislijsten of omgevingsmatrices naar JSON voor gebruik in Ansible-playbooks, Terraform-variabelebestanden of CI/CD-pipeline-configuraties.
Testdatavoorbereiding voor QA
Zet spreadsheet-gebaseerde testmatrices om naar JSON-arrays die door testframeworks zoals Jest, pytest of Playwright kunnen worden gebruikt voor data-gedreven testen.
Data-engineeringpipelines
Converteer CSV-uitvoer van SQL-query's of ETL-exports naar JSON voor laden in documentopslag zoals MongoDB, Elasticsearch of de JSON-ingestmodus van BigQuery.
Studentprojecten en leren
Converteer snel voorbeeld-CSV-datasets (Kaggle, overheidsportalen voor open data) naar JSON voor gebruik in webontwikkelingsonderwijs, tutorials of persoonlijke projecten.
CSV-scheidingstekenreferentie
CSV-bestanden gebruiken niet altijd komma's. Het scheidingsteken hangt af van de regio, de exporterende applicatie en de inhoud van de gegevens. Dit zijn de vier meest gebruikte scheidingstekens en wanneer elk doorgaans wordt gebruikt:
Scheidingsteken
Standaard
Extensie
Opmerkingen
Comma (,)
RFC 4180 default
.csv
Most common; Excel default export
Tab (\t)
TSV variant
.tsv
Avoids quoting fields that contain commas
Semicolon (;)
European locale CSV
.csv
Used where comma is the decimal separator (DE, FR, BR)
Pipe (|)
Fixed-width alternative
.csv
Rare in field values, good for messy data
CSV vs JSON: structurele verschillen
Het verschil tussen de twee formaten is de reden waarom kopteksttoewijzing, type-inferentie en het verwerken van ontbrekende waarden expliciete keuzes vereisen bij de conversie.
CSV
Plat, rij-georiënteerd formaat. Elk record heeft hetzelfde aantal velden. Alle waarden zijn strings tenzij de verwerker types afleidt. Geen ondersteuning voor nesting of records met variabele lengte. De koptekstrij is optioneel per RFC 4180, maar vereist voor zinvolle JSON-conversie.
JSON
Boomgestructureerd, zelfbeschrijvend formaat. Elk object kan verschillende sleutels hebben. Waarden zijn getypeerd: string, getal, boolean, null, object of array. Ondersteunt willekeurige nestingdiepte. Volgorde van eigenschappen wordt niet gegarandeerd door de JSON-specificatie (ECMA-404), hoewel de meeste parsers de invoegvolgorde bewaren.
Codevoorbeelden
CSV programmatisch naar JSON converteren in populaire talen en CLI-tools:
import csv, json, io
csv_string = """name,age,city
Alice,30,Berlin
Bob,25,Tokyo"""
reader = csv.DictReader(io.StringIO(csv_string))
data = [row for row in reader]
print(json.dumps(data, indent=2))
# → [{"name": "Alice", "age": "30", "city": "Berlin"}, ...]
# With type coercion (age as int)
import pandas as pd
df = pd.read_csv(io.StringIO(csv_string))
print(df.to_json(orient="records", indent=2))
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
Go
package main
import (
"encoding/csv"
"encoding/json"
"fmt"
"strings"
)
func main() {
input := "name,age,city\nAlice,30,Berlin\nBob,25,Tokyo"
r := csv.NewReader(strings.NewReader(input))
records, _ := r.ReadAll()
headers := records[0]
var result []map[string]string
for _, row := range records[1:] {
obj := make(map[string]string)
for i, h := range headers {
obj[h] = row[i]
}
result = append(result, obj)
}
out, _ := json.MarshalIndent(result, "", " ")
fmt.Println(string(out))
// → [{"age":"30","city":"Berlin","name":"Alice"}, ...]
}
CLI (jq + Miller)
# Using Miller (mlr) — handles quoting, types, and edge cases
mlr --icsv --ojson cat data.csv
# → [{"name": "Alice", "age": 30, "city": "Berlin"}, ...]
# Using csvjson from csvkit (Python-based)
csvjson data.csv
# Using jq with @csv (reverse: JSON → CSV)
# For CSV → JSON, pipe through Miller or Python
cat data.csv | python3 -c "
import csv, json, sys
reader = csv.DictReader(sys.stdin)
json.dump(list(reader), sys.stdout, indent=2)
"
Veelgestelde vragen
Hoe verwerkt de converter CSV-bestanden zonder koptekstrij?
Als je CSV geen koptekstrij heeft, gebruikt de converter automatisch gegenereerde sleutels zoals "field1", "field2", enzovoort. Voeg voor het beste resultaat een koptekstrij toe vóór de conversie, of hernoem de sleutels in de JSON-uitvoer achteraf.
Wat gebeurt er met velden tussen aanhalingstekens die komma's of regeleinden bevatten?
De parser volgt de aanhalingstekensregels van RFC 4180. Velden tussen dubbele aanhalingstekens kunnen komma's, regeleinden en zelfs dubbele aanhalingstekens bevatten (geëscaped als ""). De converter verwijdert de buitenste aanhalingstekens en bewaart de binnenste inhoud als één JSON-stringwaarde.
Behoudt de conversie gegevenstypen zoals getallen en booleans?
CSV is een getypeloos formaat; alle celwaarden zijn strings. Deze converter geeft standaard stringwaarden terug om gegevensverlies te voorkomen. Als je getypeerde uitvoer nodig hebt, verwerk het JSON-resultaat in je applicatie en cast velden expliciet. Bibliotheken zoals Papa Parse (JavaScript) en pandas (Python) bieden opties voor dynamisch typen tijdens het verwerken.
Kan ik CSV converteren met puntkomma's of tabs in plaats van komma's?
Ja. Het hulpmiddel ondersteunt komma, tab, puntkomma en pipe als scheidingsteken. Selecteer het juiste scheidingsteken in het vervolgkeuzemenu of laat de automatische detectie het herkennen. Puntkomma's komen veel voor in Europese CSV-exports uit Excel, waar de komma als decimaalteken wordt gebruikt.
Is er een bestandsgroottelimiet voor CSV-invoer?
Omdat de verwerking volledig in je browser plaatsvindt, hangt de praktische limiet af van het beschikbare geheugen van je apparaat. Bestanden tot 10-20 MB converteren doorgaans zonder problemen op moderne hardware. Voor zeer grote bestanden (honderden MB) gebruik je een streamingparser zoals Papa Parse in Node.js of de csv-module van Python, die gegevens rij voor rij verwerken zonder alles in het geheugen te laden.
Hoe ga ik om met CSV-rijen met verschillende aantallen kolommen?
Onregelmatige CSV's (rijen met minder of meer velden dan de koptekst) komen vaak voor in exportbestanden uit de praktijk. Deze converter vult ontbrekende velden met lege strings en negeert extra velden buiten het aantal kopteksten. Als je gegevens consistent onregelmatig zijn, controleer dan het bronbestand op niet-geëscapte scheidingstekens of ontbrekende aanhalingstekens.
Wat is het verschil tussen een JSON-array en een JSON-object als uitvoer?
Een JSON-array van objecten is de standaarduitvoer: elke CSV-rij wordt één object in de array, met koptekstnamen als sleutels. Sommige tools bieden ook een "kolomgeoriënteerde" uitvoer waarbij elke koptekst een sleutel wordt met een array van alle waarden in die kolom. Het array-van-objecten-formaat is gebruikelijker voor API's, databases en frontend-databinding.