XML naar JSON-converter
Converteer XML-gegevens of bestanden direct in uw browser naar JSON-indeling. Ondersteunt aangepaste inspringing en verwerkt geneste structuren.
Selecteer XML-bestand
of sleep hier naartoe
Converteer XML-gegevens of bestanden direct in uw browser naar JSON-indeling. Ondersteunt aangepaste inspringing en verwerkt geneste structuren.
of sleep hier naartoe
XML en JSON zijn beide formaten voor gegevensuitwisseling, maar komen uit verschillende tijdperken van het internet. XML, gestandaardiseerd in 1998, is ontworpen als een zelfbeschrijvend opmaakformaat met attributen, naamruimten en schemavalidatie. JSON ontstond begin jaren 2000 als een lichter formaat dat beter geschikt was voor JavaScript-runtimes en moderne API's. De meeste nieuwe web-API's spreken JSON; veel oudere systemen – SOAP-services, RSS-feeds, configuratiebestanden, bedrijfsintegraties – produceren nog steeds XML. Het converteren hiertussen is een van de meest voorkomende interoperabiliteitstaken in de moderne ontwikkeling.
De conversie is niet perfect verliesvrij omdat de twee formaten verschillende expressieve kracht hebben. XML heeft attributen (wat JSON niet standaard heeft), maakt onderscheid tussen tekstinhoud en elementnamen, en ondersteunt gemengde inhoud (elementen die zowel tekst als onderliggende elementen bevatten). Het eenvoudige object/array-model van JSON kan deze functies niet direct weergeven, dus passen converters conventies toe: attributen worden sleutels met een @-voorvoegsel, tekstinhoud wordt een #text-sleutel, enzovoort.
Deze converter parseert XML met behulp van de ingebouwde DOMParser van de browser en loopt door de resulterende DOM-boom om JSON te produceren. Elementen met dezelfde tagnaam als broers en zussen worden verzameld in arrays; attributen gaan naar speciale sleutels; naamruimten en verwerkingsinstructies blijven behouden indien aanwezig. Het resultaat is voor mensen leesbare JSON die redelijk teruggaat naar XML.
De meeste moderne applicatiecode is comfortabeler met JSON. JavaScript parseert JSON native, de json-module van Python bevindt zich in de standaardbibliotheek en vrijwel elke andere taal heeft gelijkwaardige eersteklas JSON-ondersteuning. XML-verwerking vereist het importeren van extra bibliotheken en het schrijven van meer standaardteksten. Het converteren van binnenkomende XML naar JSON vóór verwerking is vaak het snelste pad van externe XML-feed naar interne datastructuur.
Tooling leunt ook op JSON. JSON-verfraaiers, validators, schemavalidators, querytalen (jq, JSONPath) en viewers zijn er in overvloed; de XML-equivalenten zijn minder en vaak ouder. Werken in JSON ontgrendelt een rijker ecosysteem van tools.
Plak XML, haal JSON op.
DOMParser produceert een XML DOM die identiek is aan wat de browser gebruikt voor XHTML-pagina's. De converter loopt deze DOM recursief door. Voor elk element wordt een JSON-object gemaakt: attributen worden sleutels met het voorvoegsel @ (bijvoorbeeld @id, @class); de onderliggende elementen van het element worden herhaald in dezelfde structuur; tekstinhoud, indien aanwezig naast kinderen, staat onder een #text-sleutel.
Herhaalde onderliggende elementen met dezelfde tagnaam worden verzameld in een JSON-array. Eén enkel kind met een bepaalde naam verschijnt als objectwaarde; meerdere kinderen verschijnen als een reeks objecten. Deze conventie werkt in de praktijk goed, maar betekent dat de JSON-vorm afhangt van het feit of elementen één of meerdere keren voorkomen - een bekende imperfectie van XML-naar-JSON-toewijzing.
Naamruimten blijven behouden als onderdeel van elementnamen (prefix:localName). Verwerkingsinstructies en CDATA-secties worden omgezet naar tekstinhoud. XML-declaraties en DOCTYPE's worden uit de JSON-uitvoer verwijderd, maar hebben geen invloed op de gegevens.