XML naar JSON omzetten

Hier zet je XML naar JSON om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.

  • Waar het draait In je browser. Het bestand wordt nooit geüpload.
  • Opnieuw opgebouwd JSON werkt anders dan XML. Het is dus niet het geleidelijke kwaliteitsverlies van een lossy codec: wat JSON kan uitdrukken wordt getrouw weergegeven, en wat daar geen equivalent heeft blijft helemaal weg.
  • Maximale grootte Tot 100 MB per bestand, gratis en zonder account.
  • Goed om te weten XML-attributen en tekstknopen worden allebei sleutels, en dat is een afweging die de omzetter voor je maakt.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Voor wie deze omzetting bedoeld is

Deze pagina is voor een ontwikkelaar die iets binnenkrijgt dat hij niet zelf heeft ontworpen: een SOAP-respons, een RSS- of Atom-feed, een export van een partner, een configuratiebestand uit een oudere stack. De uitvoer wordt in code gebruikt, dus de exacte sleutelnamen en structuur tellen zwaarder dan de opmaak eromheen.

Wat hier het meest tijd bespaart om vooraf te weten, is niet hoe de omzetting werkt in het algemeen, maar het specifieke gedrag hieronder — gemeten, niet aangenomen.

De samenvoeging die deze pagina bestaansreden geeft

Met de parserinstellingen die deze site gebruikt, levert precies één `<item>`-element in het bronbestand een gewoon object op, terwijl twee of meer `<item>`-elementen een array opleveren. De vorm van het resultaat hangt dus af van de data, niet van het schema.

Dat is precies het soort verrassing dat een script laat crashen wanneer een feed op een dag toevallig maar één artikel bevat: code die `.map()` aanroept op wat normaal een array is, breekt zodra er die ene dag maar één item is en het resultaat plots een los object wordt.

Hoe je daar in code mee omgaat

Schrijf de code die de uitvoer van deze omzetting verwerkt zo dat hij zowel een enkel object als een array van dezelfde vorm accepteert — bijvoorbeeld door een enkel object eerst in een array van één element te wikkelen voordat de rest van de logica erop draait.

Dat is de robuustere aanpak dan aannemen dat een veld altijd een array is, precies omdat deze omzetting die aanname niet garandeert.

Wat er met attributen gebeurt

XML-attributen worden in het JSON-resultaat sleutels met een `@`-voorvoegsel, zodat ze te onderscheiden blijven van gewone kindelementen met dezelfde naam. Tekstinhoud die naast kindelementen in hetzelfde element staat, komt terecht onder een `#text`-sleutel.

Voor een SOAP-respons met veel attributen op elk element is dat een consistente, voorspelbare regel om tegen te programmeren, ook al oogt de `@`- en `#text`-notatie ongebruikelijk voor wie er voor het eerst mee werkt.

De XML-declaratie zelf

De `<?xml … ?>`-declaratie bovenaan het bronbestand krijgt een eigen sleutel in het resultaat in plaats van te worden weggelaten. Voor de meeste toepassingen is dat veld niet relevant en kan het na het parsen worden genegeerd.

Voor een script dat specifiek de opgegeven karaktercodering of XML-versie nodig heeft, staat die informatie dus wel beschikbaar in het resultaat.

Wat er met getallen gebeurt

Een waarde die er numeriek uitziet, wordt automatisch als getal geïnterpreteerd in het JSON-resultaat in plaats van als tekststring. Voor een veld dat eigenlijk een identificatiecode is die toevallig numeriek oogt, zoals een postcode met voorloopnul, kan dat de voorloopnul laten verdwijnen.

Controleer daarom velden die bedoeld zijn als tekst maar er numeriek uitzien, vooral in een export waarin ID’s of codes met vaste lengte voorkomen.

Waar het bestand blijft tijdens het omzetten

De omzetting draait volledig in de browser; het bestand wordt niet naar een server gestuurd. Voor een payload met gevoelige gegevens uit een intern systeem is dat relevant.

De limiet op het gratis plan is 100 MB per bestand.

Batchgewijs meerdere payloads verwerken

Tot honderd XML-bestanden tegelijk kunnen in één sessie worden omgezet, elk met een eigen voortgangsindicator, en het resultaat komt terug als losse bestanden of als ZIP.

Bruikbaar wanneer een systeem elke dag een nieuw XML-exportbestand aflevert dat naar dezelfde JSON-structuur moet.

Zo zet je XML naar JSON om

  1. Sleep je XML-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies JSON als doel. De omzetting gebeurt in je browser en het bestand wordt niet geüpload.
  3. Download het klare JSON-bestand.

XML of JSON: wat er verandert

XML vergeleken met JSON
XMLJSON
Volledige naamExtensible Markup LanguageJavaScript Object Notation
Bestandsextensie.xml.json
Mediatypeapplication/xmlapplication/json
Voor het eerst gepubliceerd19982001
Uitgegeven doorW3C
SpecificatieXML 1.0RFC 8259
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserElke browserElke browser
In plaats daarvan overwogenYAMLYAML, NDJSON

Wat verloren gaat

Opmerkingen gaan niet mee. In XML kun je een bestand van uitleg voorzien en JSON heeft daar geen syntaxis voor, dus elke toelichtende regel vervalt — en dat raakt juist de bestanden die van commentaar worden voorzien: configuratie die iemand anders moet bijhouden.

Het resultaat openen

Visual Studio Code leest zowel XML als JSON, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.

Waarvoor elk formaat bedoeld is

XML is het formaat van W3C, verschenen in 1998. Het is vastgelegd in XML 1.0, en dat is de moeite waard als het bestand het gereedschap moet overleven dat het schreef.

JSON stamt uit 2001, vastgelegd in RFC 8259. Visual Studio Code, jq en Postman lezen het formaat.

Van XML naar JSON: veelgestelde vragen

Wordt mijn XML-bestand ergens heen geüpload?

Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt.

Is XML naar JSON omzetten gratis?

Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk.

Gaat er kwaliteit verloren bij het omzetten van XML naar JSON?

XML en JSON beschrijven de inhoud op fundamenteel andere manieren. De omzetting is daarom een reconstructie en geen kopie: getrouw, maar niet byte voor byte identiek. XML-attributen en tekstknopen worden allebei sleutels, en dat is een afweging die de omzetter voor je maakt.

Blijven opmerkingen behouden van XML naar JSON?

Opmerkingen gaan niet mee. In XML kun je een bestand van uitleg voorzien en JSON heeft daar geen syntaxis voor, dus elke toelichtende regel vervalt — en dat raakt juist de bestanden die van commentaar worden voorzien: configuratie die iemand anders moet bijhouden.

Weet je niet welke je nodig hebt?

Deze pagina zet het een in het ander om. Gaat je vraag over kiezen en niet over omzetten, dan zegt XML vs JSON welke je moet gebruiken, waarvoor, en waar elk van beide zwak is.

Meer over deze formaten