Co je převod XML ↔ JSON?
XML (Extensible Markup Language) je tagový textový formát pro hierarchická data. Uvidíte jej v SOAP webových službách, RSS a Atom feedech, HL7 FHIR zdravotnických záznamech, sitemap.xml souborech a konfiguračních souborech, které se dodávají s Maven, Spring a Android Gradle. JSON (JavaScript Object Notation, definovaný RFC 8259) popisuje stejný druh vnořených dat, ale se závorkami a poli místo otevíracích a zavíracích tagů. JSON je to, co dnes mluví téměř každé REST API, a je to nativní tvar hodnoty každého běhového prostředí prohlížeče. Převod mezi těmito dvěma formáty je jeden z těch úkolů, který zní triviálně, dokud nenarazíte na atributy, smíšený obsah, opakované děti a CDATA. Vlastní regex je špatná odpověď; skutečný parser je ta správná. Tento nástroj dodává skutečný parser (fast-xml-parser) a spouští jej ve vašem prohlížeči, takže můžete vložit XML obálku vrácenou legacy SOAP službou a sledovat, jak se stává JSON objektem, který můžete vložit přímo do Redux store, nebo vzít JSON payload, který jste sestavili v REST klientovi, a přeměnit jej zpět do XML tvaru, který enterprise endpoint stále očekává.
Jak funguje mapování XML ↔ JSON?
Každý převod probíhá lokálně ve vašem prohlížeči pomocí knihovny fast-xml-parser (MIT, verze 4.x). Hlavní pravidla mapování jsou:
- Element na klíč: každý název XML elementu se stává klíčem JSON objektu.
<user><name>Alice</name></user>se mapuje na{"user":{"name":"Alice"}}. - Atribut na předponový klíč: atribut je uložen pod klíčem vytvořeným přidáním zvolené předpony. S předponou
@,<user id="1">produkuje{"user":{"@id":"1"}}. - Textový obsah na klíč textového uzlu: když má element jak atributy, tak text, text dopadne pod zvolený klíč textového uzlu.
<price currency="USD">9.99</price>s klíčem#textprodukuje{"price":{"@currency":"USD","#text":"9.99"}}. - Opakované děti na pole: když je zapnuto Vynutit pole pro opakované dětské tagy, více sourozeneckých elementů se stejným názvem se sbalí do JSON pole.
<items><item>A</item><item>B</item></items>se stává{"items":{"item":["A","B"]}}. - CDATA sekce: surový text uvnitř
<![CDATA[…]]>je zachován pod klíčem#cdata, takže úhlové závorky a ampersandy nejsou znovu escapovány během převodu. - JSON na XML obrací mapování: klíče objektů se stávají elementy, předponové klíče atributy a pole se rozšiřují do opakovaných sourozeneckých elementů.
Proč převádět XML a JSON s tímto nástrojem?
- Vaše data zůstávají na vašem stroji. Každé parsování a každé sestavení běží v JavaScript kontextu této stránky. FHIR patient balíčky, SOAP autentizační obálky, proprietární konfigurační soubory, fakturační exporty — nic z toho se nedotýká našich serverů, protože v kódu není žádný krok nahrávání. Otevřete network panel a sledujte.
- Legacy SOAP do REST-first frontendu je nejčastější požadavek, který slyšíme. Banka nebo pojišťovna vystavuje SOAP endpoint, který nebude vyřazen po léta; React nebo Vue aplikace, která jej volá, se nechce učit XML. Vložte obálku, získejte JSON zpět s předponovými atributy a zachovanými jmennými prostory, vložte obsah
Bodydo svého state store. - RSS, Atom a sitemap konzumenti také těží. Adresář podcastů, zpravodajský agregátor nebo interní dashboard, který ingestuje
sitemap.xml, může přeskočit psaní XML parseru. Převeďte feed jednou, pracujte s JSON polem a váš klientský kód zůstává v jazyce, který již mluví. - Export konfigurace doplňuje seznam. Maven, Spring, Android Gradle a staré Ant buildy všechna vydávají XML; cloud-native nástroje na druhé straně (Terraform, Ansible, GitHub Actions, cloud-init) čtou JSON nebo YAML. Převádějte v prohlížeči místo spouštění Python skriptu se závislostí třetí strany, zvláště užitečné v air-gapped prostředích, kde je vkládání do neznámé webové služby vyloučeno.
Jaká jsou běžná použití převodu XML ↔ JSON?
Přemosťování XML a JSON se objevuje napříč integračním inženýrstvím, API nástroji a datovým inženýrstvím. Několik vzorců dominuje pracovní zátěži:
- SOAP do REST přemostění: vytažení payloadu
Bodyz SOAP obálky vrácené legacy bankovní nebo pojišťovací API a převod na JSON, aby jej React nebo Vue front-end mohl konzumovat bez serverové proxy vrstvy. - FHIR zdravotnické záznamy: převod HL7 FHIR XML balíčků (formát vyžadovaný HHS/ONC a NHS Digital pro výměnu klinických dat) na JSON pro načtení do MongoDB Atlas kolekce nebo PostgreSQL JSONB sloupce, kde je analytici mohou dotazovat.
- Zpracování sitemap a feedů: přeměna
sitemap.xmlnebo RSS/Atom feedu na JSON pole, aby vlastní indexer, Slack bot nebo widget dashboardu mohl iterovat položky bez tahání XML parseru jako závislosti.
Jak vypadá příklad převodu XML ↔ JSON?
Vezměte malý příklad. Vložte <user id="1"><name>Alice</name></user> do vstupu, nastavte předponu atributů na @, ponechte režim na XML na JSON a stiskněte Převést. Výstup je {"user":{"@id":"1","name":"Alice"}}. Přepněte režim na JSON na XML, vložte tento JSON zpět, nastavte odsazení na 2 mezery a stiskněte Převést znovu. Dostanete <user id="1">
<name>Alice</name>
</user>, strukturálně identické s originálem. Jediná věc, která není zaručena napříč převodem, je pořadí atributů, protože klíče JSON objektů jsou podle spec neuspořádané.
Tento XML ↔ JSON převodník dodává fast-xml-parser@4 zabalený na stejné doméně, zpracovává atributy, CDATA, opakované dětské tagy a předpony jmenných prostorů a zůstává funkční offline po načtení stránky. Žádný krok nahrávání, žádný CDN proxy, žádný analytics beacon, žádná telemetrie jakéhokoli druhu. Každý bajt vstupu a výstupu zůstává ve vašem prohlížeči, což je přesně to, co chcete, když payload náhodou je FHIR patient balíček, SOAP autentizační obálka nebo jakýkoli jiný tvar dat, který by nikdo mimo váš tým neměl nikdy vidět.