Ce este conversia XML ↔ JSON?
XML (Extensible Markup Language) este un format text bazat pe etichete pentru date ierarhice. Îl vei întâlni în servicii web SOAP, feeduri RSS și Atom, înregistrări medicale HL7 FHIR, fișiere sitemap.xml și fișierele de configurare care vin cu Maven, Spring și Android Gradle. JSON (JavaScript Object Notation, definit de RFC 8259) descrie același tip de date imbricate, dar cu acolade și tablouri în loc de etichete de deschidere și închidere. JSON este ceea ce vorbește aproape fiecare API REST astăzi și este forma nativă de valoare a fiecărui runtime de browser. Convertirea între cele două formate este una dintre acele sarcini care sună trivial până când întâlnești atribute, conținut mixt, copii repetate și CDATA. O expresie regex personalizată este răspunsul greșit; un analizor real este cel corect. Acest instrument livrează un analizor real (fast-xml-parser) și îl rulează în browserul tău, astfel încât poți lipi un envelope XML returnat de un serviciu SOAP moștenit și să îl vezi devenind un obiect JSON pe care îl poți plasa direct într-un magazin Redux sau poți lua o sarcină JSON pe care ai asamblat-o într-un client REST și să o transformi înapoi în forma XML pe care un endpoint enterprise încă o așteaptă.
Cum funcționează maparea XML ↔ JSON?
Fiecare conversie rulează local în browserul tău folosind biblioteca fast-xml-parser (MIT, versiunea 4.x). Regulile de mapare de nivel înalt sunt:
- Element în cheie: fiecare nume de element XML devine o cheie de obiect JSON.
<user><name>Alice</name></user>se mapează la{"user":{"name":"Alice"}}. - Atribut în cheie prefixată: un atribut este stocat sub o cheie formată prin prefixarea prefixului ales. Cu prefixul
@,<user id="1">produce{"user":{"@id":"1"}}. - Conținut text în cheie de nod text: când un element are atât atribute, cât și text, textul ajunge sub cheia de nod text aleasă.
<price currency="USD">9.99</price>cu cheia#textproduce{"price":{"@currency":"USD","#text":"9.99"}}. - Copii repetate în tablou: când opțiunea Forțează tablou pentru etichete copil repetate este activată, mai multe elemente frate cu același nume se colapsează într-un tablou JSON.
<items><item>A</item><item>B</item></items>devine{"items":{"item":["A","B"]}}. - Secțiuni CDATA: textul brut din interiorul
<![CDATA[…]]>este păstrat sub cheia#cdata, astfel încât parantezele unghiulare și ampersandurile să nu fie re-escape în timpul călătoriei dus-întors. - JSON în XML inversează maparea: cheile obiectului devin elemente, cheile prefixate devin atribute, iar tablourile se extind în elemente frate repetate.
De ce să convertești XML și JSON cu acest instrument?
- Datele tale rămân pe mașina ta. Fiecare parsare și fiecare construcție rulează în contextul JavaScript al acestei pagini. Pachete de pacienți FHIR, envelope de autentificare SOAP, fișiere de configurare proprietare, exporturi de facturare — nimic nu atinge serverele noastre, deoarece nu există un pas de încărcare în calea codului. Deschide panoul de rețea și urmărește.
- SOAP moștenit într-un frontend REST-first este cea mai frecventă solicitare pe care o auzim. O bancă sau un asigurător expune un endpoint SOAP care nu va fi retras ani de zile; aplicația React sau Vue care îl apelează nu vrea să învețe XML. Lipește envelope-ul, obține JSON-ul înapoi cu atribute prefixate și namespace-uri păstrate, plasează conținutul
Bodyîn magazinul tău de stare. - Consumatorii de RSS, Atom și sitemap beneficiază și ei. Un director de podcasturi, un agregator de știri sau un tablou de bord intern care ingerează
sitemap.xmlpoate sări peste scrierea unui analizor XML. Convertește feedul o dată, lucrează cu tabloul JSON, iar codul tău client rămâne în limbajul pe care îl vorbește deja. - Exportul de configurare completează lista. Maven, Spring, Android Gradle și build-urile Ant de modă veche emit cu toții XML; instrumentele cloud-native de la celălalt capăt (Terraform, Ansible, GitHub Actions, cloud-init) citesc JSON sau YAML. Convertește în browser în loc să rulezi un script Python cu o dependență terță, util în special în medii izolate unde lipirea într-un serviciu web necunoscut nu este o opțiune.
Care sunt aplicațiile comune ale conversiei XML ↔ JSON?
Puntea între XML și JSON apare frecvent în ingineria de integrare, instrumente API și ingineria datelor. Câteva modele domină volumul de lucru:
- Punte SOAP în REST: extragerea sarcinii
Bodydintr-un envelope SOAP returnat de un API bancar sau de asigurări moștenit și convertirea în JSON pentru ca un frontend React sau Vue să îl poată consuma fără un strat proxy pe partea serverului. - Înregistrări medicale FHIR: convertirea pachetelor HL7 FHIR XML (formatul cerut de HHS/ONC și NHS Digital pentru schimbul de date clinice) în JSON pentru încărcarea într-o colecție MongoDB Atlas sau o coloană PostgreSQL JSONB unde analiștii le pot interoga.
- Procesare sitemap și feeduri: transformarea unui
sitemap.xmlsau a unui feed RSS/Atom într-un tablou JSON, astfel încât un indexator personalizat, un bot Slack sau un widget de tablou de bord să poată itera intrările fără a include un analizor XML ca dependență.
Cum arată o călătorie dus-întors XML ↔ JSON?
Ia un mic exemplu. Lipește <user id="1"><name>Alice</name></user> în intrare, setează prefixul atributului la @, lasă modul pe XML în JSON și apasă Convertește. Rezultatul este {"user":{"@id":"1","name":"Alice"}}. Comută modul la JSON în XML, lipește acel JSON înapoi, setează indentarea la 2 spații și apasă Convertește din nou. Vei obține <user id="1">
<name>Alice</name>
</user>, structural identic cu originalul. Singurul lucru care nu este garantat în călătoria dus-întors este ordinea atributelor, deoarece cheile obiectelor JSON sunt neordonate prin specificație.
Acest convertor XML ↔ JSON livrează fast-xml-parser@4 inclus la aceeași origine, gestionează atribute, CDATA, etichete copil repetate și prefixe de namespace și continuă să funcționeze offline după încărcarea paginii. Fără pas de încărcare, fără proxy CDN, fără beacon de analitică, fără telemetrie de niciun fel. Fiecare octet de intrare și ieșire rămâne în browserul tău, exact ceea ce îți dorești atunci când sarcina se întâmplă să fie un pachet de pacienți FHIR, un envelope de autentificare SOAP sau orice altă formă de date pe care nimeni din afara echipei tale nu ar trebui să o vadă vreodată.