Utilia

JSON–XML konvertáló

Konvertálj JSON-t XML-lé és XML-t JSON-ná a böngésződben, attribútumok, ismétlődő elemek és CDATA kezelésével. Semmi nem töltődik fel szerverre.

Konvertálás

Hogyan használd a JSON–XML konvertálót

  1. Válaszd ki az irányt: JSON → XML vagy XML → JSON.
  2. Illeszd be az adatokat, vagy kattints a Fájl megnyitása gombra egy .json vagy .xml fájl betöltéséhez (legfeljebb 10 MB).
  3. Állítsd be az opciókat: a Behúzás (2 szóköz, 4 szóköz, tabulátor vagy Nincs (kompakt)) mindkét irányban érvényes; a Gyökérelem és az XML-deklaráció hozzáadása a JSON → XML irányhoz, a Számok és logikai értékek konvertálása az XML → JSON irányhoz való.
  4. Kattints a Konvertálás gombra. Az eredmény gépelés közben is frissül, a hibák pedig megmutatják a sort és az oszlopot, ahol a problémát találta.
  5. Másold ki vagy töltsd le az eredményt. Az Irány megfordítása visszahelyezi a kimenetet a bemenetbe, hogy ellenőrizhesd az oda-vissza átalakítást.

Hogyan képződik le a JSON XML-re

Az XML és a JSON adatmodellje nem azonos, ezért minden konvertáló egy konvenciót követ. Ez az eszköz a fast-xml-parser könyvtár széles körben használt konvencióját alkalmazza:

JSON XML
{"title": "Dune"} <title>Dune</title>
{"book": {"@id": "42"}} <book id="42"/>
{"p": {"@lang": "en", "#text": "Hi"}} <p lang="en">Hi</p>
{"tag": ["a", "b"]} <tag>a</tag><tag>b</tag>
  • Az @ jellel kezdődő kulcsok attribútumokká válnak, a #text kulcs pedig az olyan elem szövegét tartalmazza, amelynek attribútumai is vannak.
  • A tömb azonos nevű, ismétlődő elemmé válik.
  • Az XML-dokumentumnak pontosan egy gyökérelemre van szüksége. Ha a JSON-od egyetlen kulcsú objektum, amelynek értéke objektum, ez a kulcs lesz a gyökér. Ellenkező esetben a teljes érték a Gyökérelem mezőben megadott elembe kerül (alapértelmezés szerint root), a legfelső szintű tömbelemek pedig <item> elemek lesznek.
  • Az érvénytelen XML-nevű kulcsokat az eszköz kijavítja: a szóközök és szimbólumok _ jellé válnak, a számjeggyel kezdődő név pedig egy vezető _ jelet kap ("1st place" → <_1st_place>).
  • A null és az üres karakterláncok üres elemet adnak, például <note/>. A különleges karakterek (&, <, >, idézőjelek) escape-elve vannak.

Hogyan képződik le az XML JSON-ra

  • Az attribútumok @ előtagú kulcsokká, a vegyes szöveg pedig #text kulccsá válik.
  • Az ismétlődő elemek tömbbé válnak; az egyszer előforduló elem egyetlen értékké.
  • A CDATA-szakaszok beleolvadnak a szövegbe, az olyan entitások, mint az &amp;, dekódolódnak. Az XML-deklaráció, a feldolgozási utasítások és a megjegyzések elmaradnak.
  • A Számok és logikai értékek konvertálása opcióval a <price>12.5</price> 12.5, a true pedig logikai érték lesz, a vezető nullával kezdődő értékek, például a 007, viszont karakterláncok maradnak. Kapcsold ki az opciót, ha minden értéket szövegként szeretnél megtartani.

Konvertálás előtt az eszköz ellenőrzi az XML jólformáltságát: a hiányzó záró címkét, a nem egyező címkét vagy az escape-elés nélküli & jelet a sorával és oszlopával jelzi.

Gyakori kérdések

Elküldésre kerülnek az adataim egy szervernek?

Nem. A konvertálás teljes egészében a böngésződben fut. Az XML-csatornáid, SOAP-üzeneteid és konfigurációs fájljaid a számítógépeden maradnak.

Miért lesz egy elem az egyik fájlban tömb, a másikban objektum?

Az XML nem mondja meg, hogy egy elem lista-e. Ha a <tag> kétszer szerepel, tömb lesz; ha egyszer, egyetlen érték. Ha a kódod tömböt vár, kezeld mindkét esetet, vagy teszteléskor adj hozzá egy második elemet.

Miért nem mindig azonos az oda-vissza átalakítás eredménye?

Egyes információknak nincs megfelelője a másik oldalon: megjegyzéseknek, a vegyes tartalom sorrendjének, vagy az egyelemű tömb és az egyetlen érték közötti különbségnek. Tipikus adatdokumentumoknál a JSON → XML → JSON átalakítás ugyanazt a szerkezetet adja vissza.

Használhatok névtereket?

Igen. Az olyan előtagos neveket, mint a soap:Envelope, és az olyan attribútumokat, mint az @xmlns:soap, az eszköz mindkét irányban változatlanul megtartja.

Ellenőrzi XSD-sémával szemben?

Nem. Azt vizsgálja, hogy az XML jólformált-e, de nem ellenőrzi DTD vagy XSD séma alapján.