JSON naar XML en terug: een praktische converter voor twee datawerelden
De meeste ontwikkelaars werken met zowel XML als JSON, of ze dat nu willen of niet. Moderne web-API's spreken bijna uitsluitend JSON, maar zodra je een bank, een verzekeraar, een overheidsendpoint, een enterprise-ERP of een oude SOAP-service aanraakt, duikt XML weer op. De JSON naar XML-converter op deze pagina zet JSON om naar XML en XML terug naar JSON, direct in je browser, zodat je tussen deze twee formaten kunt bewegen zonder gevoelige payloads naar een externe service te kopiëren.

Wat XML en JSON werkelijk zijn
XML (Extensible Markup Language) is een opmaakformaat gebouwd rond geneste tags, attributen en naamruimten. Het is ontworpen voor documenten en gestructureerde data-uitwisseling en bevat veel mechanismen: schema's (XSD), naamruimten, verwerkingsinstructies, commentaar, CDATA-secties en een formele declaratie bovenaan. Die rijkheid is de reden waarom XML nog steeds domineert in verouderde en enterprise-systemen. Je vindt het in SOAP-webservices, RSS- en Atom-feeds, configuratiebestanden (Spring, Maven, .NET-app-configuraties), kantoorbestandsformaten en financiële berichtenstandaarden zoals SWIFT en ISO 20022, waar banken en verzekeraars dagelijks XML blijven uitwisselen.
JSON (JavaScript Object Notation) is veel eenvoudiger: objecten met sleutel-waardeparen, arrays, tekenreeksen, getallen, booleans en null. Het mapt bijna één-op-één op de datastructuren van vrijwel elke programmeertaal, wat precies de reden is waarom het moderne web-API's, REST-endpoints, mobiele apps en configuratiebestanden zoals package.json heeft overgenomen. JSON is doorgaans 30 tot 50 procent kleiner dan de equivalente XML en wordt merkbaar sneller geparseerd, deels omdat het de sluitende tags en attribuutmechanismen mist die XML omslachtig maken.
De belangrijkste verschillen voor conversie
De twee formaten overlappen genoeg om op elkaar te mappen, maar niet probleemloos. Een paar structurele verschillen veroorzaken vrijwel alle wrijving:
- Attributen versus kindknooppunten. XML maakt onderscheid tussen
<gebruiker id="1">(een attribuut) en<gebruiker><id>1</id></gebruiker>(een kindelement). JSON heeft zo'n concept niet, dus converters verzinnen er een. Conventioneel worden attributen gevouwen in een sleutel zoals@attributesof voorzien van het voorvoegsel@, terwijl elementtekst terechtkomt in een sleutel zoals#text. - Arrays. JSON heeft native arrays. XML niet. Een lijst in XML is gewoon dezelfde tag herhaald, zoals drie
<item>-elementen op een rij. Converters moeten afleiden wanneer herhaalde broers en zussen moeten samenklappen tot een JSON-array en wanneer een enkel element een gewoon object moet blijven. - Naamruimten. XML gebruikt naamruimten (de
xmlns:soap-voorvoegsels) om naambotsingen tussen schema's te vermijden. JSON heeft geen equivalent, dus voorvoegsels blijven als letterlijke tekens in sleutels of worden weggelaten. - Uitgebreidheid en metadata. XML kan metadata aan een knooppunt koppelen via attributen; JSON drukt alles uit als sleutels en waarden. Dat maakt JSON compacter en leesbaarder, terwijl XML validatiekracht behoudt via XSD-schema's.
Conversievoetangels om op te letten
JSON naar XML naar JSON omzetten en een identiek resultaat verwachten is de klassieke fout. De conversie is in beide richtingen verlieslatend, tenzij je de regels beheerst. Houd dit in gedachten:
- Attributen raken vervormd. Wanneer je JSON naar XML omzet, heeft het hulpmiddel een regel nodig voor welke sleutels attributen worden versus elementen. De andere kant op hebben attributen ergens terecht te komen, en dat "ergens" (
@-voorvoegsel,@attributes-blok) verschilt tussen bibliotheken. Als een downstream-parser een andere conventie verwacht, ziet de data er verkeerd uit ook al is er niets verloren gegaan. - Enkel element versus array. Een XML-feed met één
<item>produceert een JSON-object; dezelfde feed met twee items produceert een JSON-array. Code die een array aanneemt breekt op het geval met één element. Dit is een veel voorkomende bron van RSS- en SOAP-parserfouten. - Naamruimten lekken of verdwijnen. Afhankelijk van het hulpmiddel kan
soap:Bodyeen sleutel worden die letterlijksoap:Bodyheet, of het voorvoegsel kan volledig worden weggelaten, waardoor de betekenis van het document verandert. - Gemengde inhoud en typen. XML behandelt alles als tekst, dus een waarde zoals
trueof42kan na conversie naar JSON een tekenreeks blijven, terwijl de omgekeerde richting geen native plek heeft voor commentaar of CDATA.

Waarom alleen-lokale conversie er toe doet
JSON- en XML-payloads zijn vaak het meest gevoelige wat een ontwikkelaar verwerkt: API-antwoorden met tokens, SOAP-berichten met rekeningnummers, configuratiebestanden met inloggegevens. Een converter die in je browser draait uploadt niets daarvan. Het parsen en serialiseren vinden plaats op jouw machine, er wordt niets naar een server gestuurd en je kunt het hulpmiddel offline gebruiken zodra de pagina is geladen. Voor het debuggen van productiedata of alles onder een complianceregime is dat het verschil tussen een veilige snelle controle en een onbedoeld datalek.
Als je het resultaat daarna wilt opruimen, combineer dit dan met onze andere dataconverters, of verfraai je uitvoer met de JSON-formatter voordat je het aan het volgende hulpmiddel in je pipeline doorgeeft.
Veelgestelde vragen
Uploadt de converter mijn JSON of XML ergens naartoe?
Nee. Zowel JSON naar XML als XML naar JSON converteren verloopt volledig in je browser. Je data verlaat je apparaat nooit en het hulpmiddel werkt offline nadat de pagina is geladen.
Hoe worden XML-attributen verwerkt bij conversie naar JSON?
XML-attributen worden geplaatst in een speciale sleutel, doorgaans voorzien van een apenstaart-teken of gegroepeerd onder een attributenblok, omdat JSON geen native attribuutconcept heeft. Elementtekstinhoud wordt apart opgeslagen zodat beide de conversie overleven.
Waarom werd mijn enkele XML-element een object in plaats van een array?
XML heeft geen native arrays, dus een lijst is gewoon een herhaalde tag. Wanneer er maar één element aanwezig is, kunnen converters het niet onderscheiden van een gewoon object, dus wordt het een object. Twee of meer broers en zussen met dezelfde tagnaam klappen samen tot een JSON-array.
Wat gebeurt er met XML-naamruimten zoals soap of xmlns?
JSON heeft geen equivalent voor XML-naamruimten. Afhankelijk van de conversie blijft het voorvoegsel als letterlijke tekst in de sleutel of wordt het weggelaten. Controleer de uitvoer als je downstream-verbruiker afhankelijk is van naamruimtevoorvoegsels.
Kan ik JSON terug omzetten naar XML en het originele document terugkrijgen?
Niet altijd exact. Conversie is in beide richtingen verlieslatend omdat XML-functies zoals commentaar, CDATA en het onderscheid tussen attributen en elementen geen schone JSON-tegenhanger hebben. Heen-en-terug converteren werkt het beste wanneer je de naamgevingsregels aan beide kanten beheert.
Waar wordt XML nog gebruikt vergeleken met JSON?
XML leeft in verouderde en enterprise-systemen: SOAP-webservices, RSS- en Atom-feeds, configuratiebestanden en financiële berichtgeving zoals SWIFT en ISO 20022. JSON domineert moderne web-API's, REST-endpoints en mobiele apps.
