Ga naar inhoud
TextArray
100% lokaal

XML naar JSON-converter

Converteer XML naar gelijkwaardige JSON, met attributen voorafgegaan en herhaalde tags als arrays.

Invoer
Uitvoer

XML naar JSON-converter

XML en JSON beschrijven beide gestructureerde gegevens, maar de tools om je heen spreken zelden beide. Een oude SOAP API, een RSS-feed, een Android-layout, een configuratiebestand of een data-export leveren je XML op; uw script, uw database of uw frontend wil JSON. Deze tool converteert ze onderling met een echte parser (geen regex-hack) die de lastige delen van XML correct afhandelt: geneste elementen, attributen, gemengde inhoud, zelfsluitende tags, opmerkingen, CDATA-secties, de XML-declaratie en DOCTYPE.

De mapping volgt de veelgebruikte conventie. De attributen van een element worden sleutels voorafgegaan door @ (configureerbaar), dus <user id="7"> geeft "@id": "7". Onderliggende elementen nestelen zich als objecten; wanneer een tag wordt herhaald (drie <item>-elementen op rij), worden ze samengevoegd tot één array, wat precies is wat je wilt voor lijsten. Een element dat alleen tekst bevat, wordt een gewone string; één die zowel tekst als attributen heeft, bewaart de tekst onder een #text-sleutel. Entiteiten zoals & en numerieke verwijzingen zoals A worden gedecodeerd en CDATA-inhoud wordt letterlijk genomen.

Omdat het een echte recursieve parser is, valideert het zoals het leest: een niet-overeenkomende afsluitende tag, een niet-beëindigde opmerking of verdwaalde inhoud na de root produceert een duidelijke fout met het regelnummer, in plaats van de uitvoer stilzwijgend te verminken. Kies voor een inspringing met twee of vier spaties voor een leesbaar resultaat, of verklein tot één regel voor insluiting.

Alles draait lokaal in uw browser; uw gegevens verlaten uw apparaat nooit, wat van belang is voor XML-exports die vaak records en ID's bevatten.

FAQ

Hoe worden XML-attributen weergegeven in de JSON?
Als sleutels die standaard worden voorafgegaan door @ (u kunt het voorvoegsel wijzigen). Dus <book lang="nl"> wordt { "book": { "@lang": "nl" } }. Dit is de conventie die wordt gebruikt door bibliotheken als xml-js en badgerfish, zodat de uitvoer in de meeste toolchains terechtkomt.
Wat gebeurt er met herhaalde tags?
Ze worden een array. Drie <item> kinderen worden samengevouwen tot "item": [ … ], wat een lijst nodig heeft. Een tag die één keer verschijnt, blijft een enkele waarde. Merk op dat dit een document betekent met één item en een ander met meerdere toewijzingen aan verschillende vormen, wat inherent is aan XML → JSON.
Kan het gemengde inhoud en CDATA verwerken?
Ja. Een element met zowel tekst als kinderen (of attributen) bewaart zijn tekst onder een #text-sleutel. CDATA-secties worden letterlijk genomen, zodat hun <raw>-opmaak en &-tekens overleven zonder te worden geparseerd. Opmerkingen en verwerkingsinstructies worden overgeslagen.
Waarom rapporteerde het een fout in plaats van een conversie?
Het is een validerende parser: een niet-overeenkomende afsluitende tag, een niet-geciteerd attribuut, een niet-beëindigde opmerking of inhoud na het hoofdelement stoppen allemaal de conversie met een regelgenummerd bericht. Dat is opzettelijk: een verkeerde, maar stille conversie is erger dan een duidelijke fout.
Wordt mijn XML ergens geüpload?
Nee. Het parseren en converteren gebeurt volledig in uw browser en uw gegevens verlaten uw apparaat nooit.