Oavsett om du konfigurerar en webbapplikation, utbyter data mellan tjanster, analyserar en kalkylbladsexport eller laser ett API-svar kommer du att stota pa data lagrad i strukturerade textformat. De fyra vanligaste ar JSON, YAML, CSV och XML.
Varje format designades med olika mal i akta, och att valja ratt beror pa ditt anvandningsfall. Den har artikeln forklarar vad varje format ar, hur det ser ut, nar du bor anvanda det och hur de jamfors.
JSON -- JavaScript Object Notation
JSON har blivit det dominerande datautbytesformatet pa webben. Trots sitt namn ar det sprakkoberoende och anvands overallt.
Syntaxexempel:
{
"name": "Alice Martin",
"age": 34,
"skills": ["Python", "SQL", "Docker"],
"address": {
"city": "Lyon",
"country": "France"
}
}
Viktiga egenskaper:
- Nyckel-varde-par med en ren, lasbar syntax
- Stoder strangar, tal, booleska varden, arrayer, objekt och null
- Inga kommentarer tillatna i standard JSON
- Strikt syntax -- avslutande kommatecken och enkla citattecken ar fel
Vanliga anvandningsfall: REST API:er, konfigurationsfiler (package.json, tsconfig.json), NoSQL-databaser (MongoDB), datautbyte mellan frontend och backend.
Bra att veta. JSON:s strikta syntax ar bade en styrka och en svaghet. Den gor parsning palitlig och entydig, men det innebar ocksa att ett enda saknat kommatecken eller extra avslutande kommatecken bryter hela filen.
YAML -- YAML Ain't Markup Language
YAML designades for att vara det mest manniskolasaira dataserialisieringsformatet som mojligt. Det anvander indentering istallet for klamrar och ar sarskilt populart for konfigurationsfiler.
Syntaxexempel:
name: Alice Martin
age: 34
skills:
- Python
- SQL
- Docker
address:
city: Lyon
country: France
Viktiga egenskaper:
- Indenteringsbaserad struktur (inga klamrar eller klammerparenteser)
- Stoder kommentarer med
# - Stoder alla JSON-datatyper plus fler (datum, flerradsstrangar)
- Blankstegskanslig -- felaktig indentering bryter filen
Vanliga anvandningsfall: Docker Compose-filer, Kubernetes-manifest, CI/CD-pipelines (GitHub Actions, GitLab CI), Ansible-playbooks, Hugo/Jekyll-konfiguration.
YAML ar en superset av JSON, vilket innebar att varje giltigt JSON-dokument ocksa ar giltig YAML. Dock kan YAML:s flexibilitet vara ett tveeggat svard -- dess implicita typkonvertering (till exempel att yes tolkas som boolesk true, eller att 3.10 blir 3.1) har orsakat manga subtila buggar.
CSV -- Comma-Separated Values
CSV ar det enklaste strukturerade dataformatet. Det lagrar tabelldata som ren text, dar varje rad ar en post och varden separeras av kommatecken (eller ibland semikolon, tabbar eller andra avgransare).
Syntaxexempel:
name,age,city,country
Alice Martin,34,Lyon,France
Bob Dupont,28,Paris,France
Carol Smith,41,London,UK
Viktiga egenskaper:
- Extremt enkelt -- bara text med avgransare
- Inga datatyper -- allt ar en strang
- Inget standardsatt att representera nastlad data
- Ingen officiell universell standard (RFC 4180 finns men foljs inte universellt)
- Filstorlekarna ar mycket sma
Vanliga anvandningsfall: Kalkylbladsexporter, databasimport/export, dataanalys (pandas, R), enkelt datautbyte, loggfiler.
CSV:s enkelhet ar dess storsta styrka och storsta begransning. Det ar perfekt for platt, tabellformig data men kan inte representera hierarkiska strukturer. Specialfall (kommatecken i varden, flerradsfalt, kodningsproblem) gor parsning mer komplex an det forst verkar.
XML -- Extensible Markup Language
XML var det dominerande datautbytesformatet innan JSON tog over. Det anvander en taggbaserad syntax liknande HTML och stoder komplexa funktioner som scheman, namnrymder och transformationer.
Syntaxexempel:
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>Alice Martin</name>
<age>34</age>
<skills>
<skill>Python</skill>
<skill>SQL</skill>
<skill>Docker</skill>
</skills>
<address>
<city>Lyon</city>
<country>France</country>
</address>
</person>
Viktiga egenskaper:
- Taggbaserad struktur med oppnings- och stangstaggar
- Stoder attribut, namnrymder, scheman (XSD) och transformationer (XSLT)
- Stoder kommentarer
- Mycket ordrik jemfort med andra format
- Extremt valdefinierad standard med strikt validering
Vanliga anvandningsfall: SOAP-webbtjanster, foretagsintegrationer, dokumentformat (DOCX, SVG, RSS), konfigurationsfiler i Java/.NET-ekosystem, myndighets- och finansdatautbyte.
XML ar mer ordrikt an JSON eller YAML, men dess schemavalideringsformagor gor det ovanderligt i sammanhang dar dataintegritet och formella kontrakt mellan system ar kritiska.
Jamforelse sida vid sida
| Funktion | JSON | YAML | CSV | XML |
|---|---|---|---|---|
| Manniskolasbarhet | Bra | Utmarkt | Bra (tabellformat) | Acceptabel |
| Ordrikhet | Lag | Lag | Mycket lag | Hog |
| Kommentarer | Nej | Ja | Nej | Ja |
| Nastlad data | Ja | Ja | Nej | Ja |
| Datatyper | Grundlaggande | Rika | Inga (allt ar strangar) | Via schema |
| Schemavalidering | JSON Schema | Ingen standard | Nej | XSD |
| Filstorlek | Liten | Liten | Minst | Stor |
| Parsningshastighet | Snabb | Mattlig | Snabb | Mattlig |
| Huvuddomdn | Webb-API:er | DevOps-konfig | Data/kalkylblad | Foretag |
Nar du bor anvanda vilket
- Valj JSON nar du bygger webb-API:er, lagrar konfiguration for JavaScript/TypeScript-projekt eller utbyter data mellan tjanster. Det ar standardvalet for de flesta moderna applikationer.
- Valj YAML nar du skriver konfigurationsfiler som manniskor kommer att lasa och redigera regelbundet. Dess lasbarhet och kommentarsstod gor det idealiskt for DevOps och infrastruktur som kod.
- Valj CSV nar du arbetar med tabelldata, importerar/exporterar fran kalkylblad eller databaser, eller nar filstorleken maste vara minimal. Undvik det for allt hierarkiskt.
- Valj XML nar du arbetar med foretagssystem, SOAP-API:er eller sammanhang som kraver formell schemavalidering. Det ar ocksa ratt val nar du behover dokumentorienterad markering (som SVG eller RSS).
Konvertering mellan format
Att konvertera mellan dessa format ar en vanlig uppgift. Nagra saker att ta hansyn till:
- JSON till YAML (och vice versa) ar vanligtvis forlustfri eftersom YAML ar en superset av JSON.
- CSV till JSON/YAML fungerar bra for platt data men kraver beslut om struktur for nastlad utdata.
- XML till JSON kan forlora information (attribut, namnrymder, ordning) eftersom JSON saknar motsvarande koncept.
- Vilket format som helst till CSV fungerar bara om datan ar platt eller kan meningsfullt plattas till.
Tips. Nar du konverterar mellan format, verifiera alltid resultatet. Automatiska konverteringar kan tyst forlora data, sarskilt med XML-attribut, YAML-typkonvertering eller CSV-kodningsspecialfall.
Mer lasning
ToolK.io tillhandahailer gratisverktyg for att konvertera mellan JSON, YAML, CSV och XML, formatera och validera din data, samt utforska relaterade tutorials for att arbeta med strukturerad data i dina projekt.
