Preskočiť na obsah
TextArray
100% lokálne

Konvertor XML na JSON

Preveďte XML na ekvivalentný JSON, s predponou pri atribútoch a opakovanými tagmi ako poľami.

Vstup
Výstup

Konvertor XML na JSON

XML aj JSON opisujú štruktúrované dáta, no nástroje okolo vás málokedy hovoria oboma. Staré SOAP API, RSS kanál, Android layout, konfiguračný súbor či dátový export vám dá XML; váš skript, databáza či frontend chce JSON. Tento nástroj medzi nimi prevádza skutočným parserom — nie regexovým hackom — čo správne zvláda ošemetné časti XML: vnorené elementy, atribúty, zmiešaný obsah, samozatváracie tagy, komentáre, CDATA sekcie, XML deklaráciu aj DOCTYPE.

Mapovanie sleduje široko používanú konvenciu. Atribúty elementu sa stanú kľúčmi s predponou @ (nastaviteľné), takže <user id="7"> dá "@id": "7". Detské elementy sa vnoria ako objekty; keď sa tag opakuje — tri <item> elementy za sebou — zlúčia sa do jediného poľa, čo je presne to, čo chcete pre zoznamy. Element, čo má len text, sa stane obyčajným reťazcom; ten, čo má text aj atribúty, si drží text pod kľúčom #text. Entity ako &amp; a číselné referencie ako &#65; sa dekódujú a obsah CDATA sa berie doslovne.

Keďže je to skutočný rekurzívny parser, validuje počas čítania: nezhodný uzatvárací tag, neukončený komentár či zatúlaný obsah za koreňom vytvorí jasnú chybu s číslom riadku namiesto tichého zmršenia výstupu. Zvoľte dvoj- alebo štvormedzerové odsadenie pre čitateľný výsledok, alebo zminifikujte na jeden riadok na vloženie.

Všetko beží lokálne vo vašom prehliadači — vaše dáta nikdy neopustia vaše zariadenie, čo pri XML exportoch, čo často nesú záznamy a identifikátory, záleží.

Časté otázky

Ako sa XML atribúty reprezentujú v JSON?
Ako kľúče s predponou @ predvolene (predponu môžete zmeniť). Takže <book lang="en"> sa stane { "book": { "@lang": "en" } }. Toto je konvencia knižníc ako xml-js a badgerfish, takže výstup zapadne do väčšiny toolchainov.
Čo sa deje s opakovanými tagmi?
Stanú sa poľom. Tri detské <item> sa zlúčia na "item": [ … ], čo zoznam potrebuje. Tag, čo sa objaví raz, ostane jednou hodnotou — pozor, to znamená, že dokument s jednou položkou a iný s viacerými sa mapujú na rôzne tvary, čo je inherentné pre XML→JSON.
Zvláda zmiešaný obsah a CDATA?
Áno. Element s textom aj deťmi (či atribútmi) si drží text pod kľúčom #text. CDATA sekcie sa berú doslovne, takže ich <raw> markup a znaky & prežijú bez parsovania. Komentáre a inštrukcie spracovania sa preskočia.
Prečo ohlásil chybu namiesto prevodu?
Je to validujúci parser: nezhodný uzatvárací tag, neuvodzený atribút, neukončený komentár či obsah za koreňovým elementom zastavia prevod so správou s číslom riadku. Je to zámer — zlý, no tichý prevod je horší než jasná chyba.
Nahráva sa moje XML niekam?
Nie. Parsovanie a prevod bežia výhradne vo vašom prehliadači a vaše dáta nikdy neopustia vaše zariadenie.