Ugrás a tartalomhoz
TextArray
100% helyi

XML–JSON átalakító

Alakíts XML-t egyenértékű JSON-ná — előtagos attribútumokkal, ismételt tagek tömbként.

Bemenet
Kimenet

XML–JSON átalakító

Az XML és a JSON is strukturált adatokat ír le, de a körülötted lévő eszközök ritkán beszélik mindkettőt. Egy régi SOAP API, egy RSS-hírcsatorna, egy Android-elrendezés, egy konfigurációs fájl vagy egy adatexport XML-t ad; a szkripted, az adatbázisod vagy a frontended JSON-t akar. Ez az eszköz valódi parserrel alakít át közöttük — nem regex-hackkel —, amely helyesen kezeli az XML nehéz részeit: beágyazott elemek, attribútumok, vegyes tartalom, önzáró tagek, kommentek, CDATA-szakaszok, az XML-deklaráció és a DOCTYPE.

A leképezés a széles körben használt konvenciót követi. Egy elem attribútumai @-előtagú kulcsokká válnak (állítható), így a <user id="7"> ezt adja: "@id": "7". A gyermekelemek objektumként ágyazódnak; ha egy tag ismétlődik — három <item> elem egymás után —, egyetlen tömbbé olvadnak, ami pontosan az, amit a listákhoz akarsz. A csak szöveget tartalmazó elem sima sztring lesz; a szöveget és attribútumot is tartalmazó a szövegét egy #text kulcs alatt őrzi. Az olyan entitások, mint az &amp;, és a numerikus hivatkozások, mint a &#65;, dekódolódnak, a CDATA-tartalom pedig szó szerint kerül átvételre.

Mivel valódi rekurzív parser, olvasás közben validál: egy nem egyező záró tag, egy lezáratlan komment vagy a gyökér utáni eltévedt tartalom világos hibát ad sorszámmal, ahelyett hogy csendben eltorzítaná a kimenetet. Válassz két- vagy négyszóközös behúzást olvasható eredményhez, vagy tömöríts egy sorra beágyazáshoz.

Minden helyben, a böngésződben fut — az adataid soha nem hagyják el az eszközödet, ami számít az XML-exportoknál, amelyek gyakran rekordokat és azonosítókat hordoznak.

Gyakori kérdések

Hogyan jelennek meg az XML-attribútumok a JSON-ban?
Alapból @-előtagú kulcsokként (az előtag módosítható). Így a <book lang="en"> ez lesz: { "book": { "@lang": "en" } }. Ez az xml-js és badgerfish-féle könyvtárak konvenciója, így a kimenet a legtöbb toolchainbe illik.
Mi történik az ismételt tagekkel?
Tömbbé válnak. Három gyermek <item> ezzé olvad: "item": [ … ], ami a listának kell. Az egyszer megjelenő tag egyetlen érték marad — figyelem, ez azt jelenti, hogy egy egyelemes és egy többelemes dokumentum eltérő alakra képződik, ami az XML→JSON sajátja.
Kezeli a vegyes tartalmat és a CDATA-t?
Igen. A szöveget és gyermekeket (vagy attribútumokat) is tartalmazó elem a szövegét egy #text kulcs alatt őrzi. A CDATA-szakaszok szó szerint kerülnek átvételre, így a <raw> jelölésük és az & karaktereik parse nélkül maradnak meg. A kommentek és feldolgozási utasítások kimaradnak.
Miért jelzett hibát az átalakítás helyett?
Validáló parser: egy nem egyező záró tag, egy idézőjel nélküli attribútum, egy lezáratlan komment vagy a gyökérelem utáni tartalom sorszámozott üzenettel állítja meg az átalakítást. Ez szándékos — a rossz, de csendes átalakítás rosszabb egy világos hibánál.
Feltöltődik valahová az XML-em?
Nem. A parse és az átalakítás teljes egészében a böngésződben fut, és az adataid soha nem hagyják el az eszközödet.