In dit artikel
Wat is JSON Lines?
JSON Lines (ook wel JSONL of Newline-Delimited JSON, NDJSON genoemd) is een tekstformaat waarbij elke regel een geldig JSON-object is. In tegenstelling tot regulier JSON dat alles in een array verpakt, plaatst JSONL een record per regel zonder omsluitende haakjes. Dit maakt het ideaal voor streaming, toevoegen en het verwerken van grote datasets regel voor regel.
Een typisch JSONL-bestand ziet er zo uit: elke regel bevat een compleet JSON-object met eigen sleutels en waarden. Er zijn geen komma's tussen regels en geen omsluitende array. Deze eenvoud maakt het formaat krachtig voor datapijplijnen, logbestanden en machine learning-datasets.
Waarom JSONL belangrijk is
JSONL is het voorkeursformaat geworden voor verschillende belangrijke use cases in moderne data-engineering en cloudplatformen.
- Streamingverwerking -- omdat elke regel onafhankelijk is, kunt u bestanden regel voor regel verwerken zonder de volledige dataset in het geheugen te laden, cruciaal voor bestanden van meerdere gigabytes
- BigQuery- en cloudimports -- Google BigQuery, Amazon Athena en andere cloud-datawarehouses ondersteunen JSONL native voor het laden van gegevens, waardoor het het standaardformaat is voor clouddata-imports
- Machine learning-datasets -- veel ML-frameworks waaronder Hugging Face, OpenAI fine-tuning en BERT-training verwachten gegevens in JSONL-formaat met een voorbeeld per regel
- Logbestanden en eventstreams -- applicatielogs gebruiken vaak JSONL omdat nieuwe events aan een bestand kunnen worden toegevoegd zonder bestaande inhoud te wijzigen of arraysyntax te onderhouden
Probeer gratis — geen aanmelding vereist
CSV naar JSONL converteren →CSV naar JSONL converteren
Het converteren van CSV naar JSONL mapt elke rij in uw CSV-bestand naar een JSON-object waarbij de kolomkoppen de sleutels worden.
- Headers als sleutels -- de eerste rij van uw CSV-bestand levert de eigenschapsnamen voor elk JSON-object, dus kolomkoppen moeten schoon en consistent zijn
- Scheidingstekendetectie -- de converter verwerkt komma-, puntkomma-, tab- en pipe-scheidingstekens, detecteert het formaat automatisch of laat u het expliciet opgeven
- Typeinferentie -- numerieke waarden worden geconverteerd naar JSON-getallen in plaats van strings, en lege cellen kunnen worden uitgevoerd als null of geheel worden weggelaten afhankelijk van uw voorkeur
Veelgestelde vragen
Wat is het verschil tussen JSONL en regulier JSON?
Regulier JSON verpakt alle records in een array met vierkante haken en scheidt ze met komma's. JSONL plaatst een JSON-object per regel zonder array-omhulling en zonder komma's tussen records. Dit betekent dat u aan een JSONL-bestand kunt toevoegen zonder bestaande inhoud te wijzigen, het regel voor regel kunt verwerken zonder een volledige parser, en het kunt streamen zonder het hele bestand te bufferen.
Wanneer moet ik JSONL gebruiken in plaats van CSV?
Gebruik JSONL wanneer uw gegevens geneste structuren, inconsistente kolommen hebben of geconsumeerd moeten worden door APIs en cloudservices. CSV is beter voor eenvoudige tabulaire gegevens die in spreadsheets worden geopend. JSONL behoudt datatypes (getallen, booleans, null) terwijl CSV alles als tekst behandelt. JSONL verwerkt ook waarden met komma's en regeleinden zonder escape-problemen.
Welke bestandsextensie moet ik gebruiken?
De meest voorkomende extensies zijn .jsonl en .ndjson. Sommige tools accepteren ook .json met een object per regel. Gebruik .jsonl voor duidelijkheid omdat het iedereen die naar het bestand kijkt onmiddellijk vertelt dat het newline-gescheiden is in plaats van standaard JSON. BigQuery en de meeste cloudtools accepteren alle drie extensies.
Kunnen JSONL-bestanden worden gestreamd?
Ja, dat is een van de belangrijkste voordelen van JSONL. Omdat elke regel onafhankelijk en op zichzelf staand is, kunt u een regel tegelijk lezen en verwerken met eenvoudige readline-logica in elke programmeertaal. Dit maakt JSONL ideaal voor het verwerken van datasets die te groot zijn om in het geheugen te passen, in tegenstelling tot regulier JSON dat het volledige arraystructuur moet parsen.