JSON, YAML, CSV: När ska man använda vad och hur konverterar man?
Du laddar ner en datamängd och den är i CSV-format. Ditt API returnerar JSON. Din konfigurationsfil är i YAML. En kollega skickar en JSON-fil och vill ha den som ett kalkylblad. En annan kollega lämnar en YAML-konfiguration och du behöver den som JSON för ett annat verktyg.
Att konvertera dataformat verkar trivialt tills man faktiskt sitter och gör det. Att förstå när man ska använda vilket format — och hur man flyttar sig mellan dem — sparar verklig tid.
De tre formaten i korthet
JSON (JavaScript Object Notation)
{
"name": "Alice",
"age": 30,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Berlin",
"country": "Germany"
}
}
Vad det är: Ett textformat för strukturerad data som stöder objekt (nyckel-värde-par), arrayer (ordnade listor), strängar, tal, booleaner och null.
Styrkor: Maskinläsbart, brett stöd i alla programmeringsspråk, hanterar nästlad data naturligt, strikt syntax som förhindrar tvetydighet.
Svagheter: Ordrik (massor av klamrar, parenteser och citattecken), inte lika lättläst som YAML, stöder inte kommentarer.
YAML (YAML Ain't Markup Language)
name: Alice
age: 30
skills:
- Python
- SQL
- Docker
address:
city: Berlin
country: Germany
Vad det är: Ett människovänligt serialiseringsformat som använder indragningar i stället för klamrar och parenteser. Det är en supermängd av JSON, vilket innebär att giltig JSON också är giltig YAML.
Styrkor: Extremt lättläst, stöder kommentarer, mindre visuellt brus, utmärkt för konfigurationsfiler.
Svagheter: Känsligt för indragning (lätt att förstöra med fel mellanrum), en del förvånande tolkningsbeteenden, långsammare att tolka än JSON.
CSV (Comma-Separated Values)
name,age,city,country
Alice,30,Berlin,Germany
Bob,25,London,UK
Charlie,35,Paris,France
Vad det är: Ett platt textformat där varje rad är en post och värdena separeras med kommatecken (eller ibland semikolon eller tabbar).
Styrkor: Universellt (varje kalkylblad, databas och dataverktyg stöder det), kompakt för tabelldata, enkelt att läsa och skapa.
Svagheter: Stöder inte nästlad data, har inga datatyper (allt är en sträng), ingen standard för specialtecken, begränsat till platta tabeller.
Visste du att? YAML är tekniskt sett en supermängd av JSON. Det innebär att ett giltigt JSON-dokument automatiskt är ett giltigt YAML-dokument. Du kan klistra in JSON i en YAML-tolk och det kommer att fungera. Det omvända gäller inte — YAML:s funktioner (kommentarer, ankare, flerradssträngar) har ingen JSON-motsvarighet.
När ska man använda vilket format?
| Användningsfall | Bäst format | Varför |
|---|---|---|
| API-förfrågningar och svar | JSON | Branschstandard, inbyggt stöd i alla språk |
| Konfigurationsfiler | YAML | Lättläst, stöder kommentarer för dokumentation |
| Kalkylbladsdata | CSV | Öppnas direkt i Excel, Google Sheets m.fl. |
| Databasexporter | CSV | Platt tabelldata mappas direkt till rader och kolumner |
| Komplex nästlad data | JSON eller YAML | CSV kan inte representera nästling |
| Datautbyte mellan system | JSON | Entydig tolkning, strikt specifikation |
| Mänskligt redigerad konfiguration | YAML | Enklare att läsa och redigera för hand |
| Enkla datalistor | CSV | Lättviktig, utan overhead |
Konvertera mellan format
JSON till YAML
Det vanligaste konfigurationsbytet. Du har en JSON-konfiguration från ett verktyg och behöver YAML för ett annat. Konverteringen är enkel eftersom YAML stöder allt JSON gör.
{"server": {"host": "0.0.0.0", "port": 8080}}
Blir:
server:
host: 0.0.0.0
port: 8080
YAML till JSON
Att gå från YAML till JSON är också enkelt, men du förlorar kommentarerna (JSON stöder dem inte) och resultatet blir mer ordrik.
JSON till CSV
Det fungerar bra för platta JSON-arrayer (arrayer av objekt med samma nycklar). Varje objekt blir en rad och varje nyckel en kolumnrubrik.
[
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25}
]
Blir:
name,age
Alice,30
Bob,25
Observera JSON-till-CSV-konvertering fungerar dåligt när JSON innehåller nästlade objekt eller arrayer. CSV är platt — det finns inget sätt att representera en array med kompetenser eller ett nästlat adressobjekt. Nästlad data måste antingen plattas ut (address.city, address.country som separata kolumner) eller serialiseras som en sträng i en CSV-cell.
CSV till JSON
Varje rad blir ett objekt med kolumnrubriker som nycklar. Det är snyggt för enkel tabelldata.
CSV till YAML
Mindre vanligt, men följer samma logik: varje rad blir en YAML-mappning och hela filen blir en YAML-sekvens.
Vanliga fallgropar
CSV-kodningsproblem
CSV-filer kan använda olika teckenkodningar (UTF-8, Latin-1, Windows-1252). Om du öppnar en CSV och ser konstiga tecken som "München" i stället för "München" är det ett kodningsfel. Använd alltid UTF-8 när det är möjligt.
Förvirring kring CSV-avgränsare
Inte alla CSV-filer använder kommatecken. Europeiska CSV-filer använder ofta semikolon eftersom kommatecken används som decimaltecken i många europeiska talformat. Tabbavgränsade värden (TSV) är ytterligare en vanlig variant.
YAML-indragningsfel
YAML använder indragning (mellanslag, aldrig tabbar) för att definiera struktur. En inkonsekvent indragning, eller en blandning av tabbar och mellanslag, ger tolkningsfel eller tyst feltolkning. Använd exakt 2 mellanslag per indragningsnivå och ställ in din editor att infoga mellanslag i stället för tabbar.
Observera I YAML tolkas strängen no som booleskt false och yes som true. Strängen 1.0 tolkas som ett tal. Om du menar de bokstavliga strängarna "no", "yes" eller "1.0" måste du citera dem: "no", "yes", "1.0". Det är en av YAML:s mest ökända fallgropar.
JSON-avslutningskommatecken
JSON tillåter inte avslutande kommatecken. Det här är giltigt i JavaScript men ogiltigt i JSON:
{"name": "Alice", "age": 30,} // Ogiltigt JSON: avslutande kommatecken
Prestanda med stora filer
För mycket stora datamängder (miljontals rader) är CSV effektivare än JSON eller YAML eftersom det har minimalt overhead per post. JSON lägger till klamrar och citattecken för varje värde, vilket ökar filstorleken markant för stora tabelldata.
Praktiska verktyg för konvertering
För snabba engångskonverteringar är webbläsarbaserade verktyg det snabbaste alternativet. Du klistrar in eller laddar upp din data, väljer målformat och får resultatet omedelbart.
Tips Konvertera mellan JSON, YAML och CSV direkt: Så konverterar du dataformat. Klistra in din data, välj målformat och kopiera eller ladda ner resultatet.
För att arbeta specifikt med JSON är en formatterare som validerar och snyggar till din JSON ovärderlig:
- JSON Formatter — validera, formatera och minimera JSON
- JSON till CSV-konverterare — konvertera JSON-arrayer till CSV
- YAML-JSON-konverterare — konvertera mellan YAML och JSON
- CSV-visare — visa och utforska CSV-filer
Konvertera din data nu:
Alla verktyg är gratis och fungerar direkt i din webbläsare.