Hvis du nogensinde har integreret med et ældre enterprise-API eller arbejdet med RSS-feeds, har du mødt XML. Hvis du har bygget noget på det moderne web, lever du i JSON. Begge formater løser det samme kerneproblem — at repræsentere strukturerede data som tekst — men gør det på meget forskellige måder. Denne artikel gennemgår de reelle forskelle, så du kan træffe et informeret valg.
De samme data, to formater
Lad os starte med et konkret eksempel. Her er et brugerobjekt i JSON:
{
"user": {
"id": 101,
"name": "Bob",
"email": "[email protected]",
"roles": ["admin", "editor"],
"active": true
}
}Og her er præcis de samme data i XML:
<?xml version="1.0" encoding="UTF-8"?>
<user>
<id>101</id>
<name>Bob</name>
<email>[email protected]</email>
<roles>
<role>admin</role>
<role>editor</role>
</roles>
<active>true</active>
</user>JSON-versionen er 62 tegn. XML-versionen er 198 tegn — 3× større for de samme data. Med et lille payload spiller det ingen rolle. Med et højtrafikeret API, der håndterer millioner af forespørgsler om dagen, løber båndbredden hurtigt op.
Hvor JSON vinder
- Kortfattethed. Ingen slutkoder. Mindre gentagelse. Mindre payloads over ledningen.
- Indbygget JavaScript-understøttelse.
JSON.parse()ogJSON.stringify()er indbygget i alle JS-runtimes. Intet eksternt bibliotek er nødvendigt. - Enkelhed. Seks datatyper, en håndfuld regler. Du kan læse hele JSON-specifikationen på 10 minutter.
- Array-understøttelse. JSON har native arrays. I XML sidder du fast med gentagne elementer som
<role><role><role>. - Værktøjer. Moderne databaser som PostgreSQL, MongoDB og MySQL har førsteklasses JSON-understøttelse. De fleste logningsplatforme parser JSON nativt.
- Læsbarhed. Udviklere finder JSON nemmere at skimme. Mindre støj fra vinkelbraketter og slutkoder.
Hvor XML stadig vinder
- Attributter og metadata. XML-elementer kan bære attributter:
<user id="101" active="true">. Nyttigt når du skal annotere data uden at tilføje underordnede elementer. - Navnerum. XML-navnerum lader dig blande vokabularier i ét dokument — kritisk i formater som XHTML, SVG, SOAP og Office Open XML.
- Schemavalidering. XML Schema (XSD) giver kraftfuld, standardiseret validering inkl. datatyper, mønstre og kardinalitet. JSON Schema indhenter, men XML Schema har årtiers værktøjer bag sig.
- Dokumentcentrerede brugsscenarier. XML blev designet til dokumenter, ikke kun data. Formater som XHTML, DocBook og DITA er bygget på XML og fungerer glimrende til indhold med blandet tekst og markup.
- XSLT-transformationer. Du kan transformere XML til HTML, andet XML eller ren tekst med XSLT — et kraftfuldt værktøj til publiceringspipelines.
- Kommentarer. XML understøtter kommentarer. JSON gør ikke. I konfigurationsfiler, hvor du ønsker at forklare, hvorfor en indstilling eksisterer, betyder det noget.
Ydeevne: betyder det noget i praksis?
For de fleste applikationer er forskellen i parseydelse mellem JSON og XML irrelevant. Hvor det betyder noget — højfrekvente datafeeds, IoT-telemetri, realtidssystemer — vinder JSON komfortabelt. JSON-parsere er enklere og hurtigere, fordi selve formatet er enklere. Et hurtigt benchmark: at parse en 1 MB JSON-fil i Node.js tager typisk 10–30 ms. Det tilsvarende XML, med en SAX-parser, er ofte 2–5× langsommere, og en DOM-parser er endnu værre.
Hvis ydeevnen virkelig er kritisk, er ingen af formaterne ideelle — du ville bruge et binært format som Protocol Buffers eller MessagePack. Men til typisk web-API-arbejde er JSON's ydeevne mere end tilstrækkelig.
Beslutningsguide: hvornår du skal bruge hvad
Brug JSON, når du:
- Bygger REST- eller GraphQL-API'er
- Gemmer konfiguration eller indstillinger (package.json, tsconfig.json osv.)
- Arbejder med JavaScript, TypeScript, Python, Ruby, Go — ethvert moderne sprog
- Taler med ethvert moderne tredjeparts-API
- Gemmer dokumenter i MongoDB, Elasticsearch eller PostgreSQL JSONB-kolonner
Brug XML, når du:
- Integrerer med ældre enterprise-systemer (SAP, Salesforce SOAP-API'er osv.)
- Arbejder med dokumentformater: SVG, EPUB, Office Open XML (.docx, .xlsx)
- Har publiceringspipelines, der bruger XSLT-transformationer
- Håndterer RSS- / Atom-feeds
- Udveksler data i brancher med etablerede XML-standarder (HL7 inden for sundhed, FpML inden for finans osv.)
At arbejde med begge formater
Sommetider skal du konvertere mellem de to. Måske bruger du et ældre XML-API og vil gemme dataene som JSON, eller du skal sende data til en XML-baseret tjeneste fra en JSON-nativ backend. Du kan bruge XML til JSON-konverteren eller JSON til XML-konverteren til at håndtere disse transformationer. Til inspektion af XML-svar er XML Formatter og XML Validator nyttige.
Afsluttende tanker
JSON og XML løser det samme problem, men tjener forskellige kontekster. JSON er det rigtige valg for langt størstedelen af moderne udvikling — det er enklere, mindre og har bedre native understøttelse i alle sprog. XML har genuint unikke styrker i dokumentcentrerede og navnerumsorienterede brugsscenarier. Den gode nyhed er, at du ikke behøver at være dogmatisk — begge formater er modne, velunderstøttede og vil sameksistere længe. Kend afvejningerne og vælg det rette værktøj til opgaven.