Utilia

Převodník JSON na XML

Převáděj JSON na XML a XML na JSON ve svém prohlížeči, se zpracováním atributů, opakovaných prvků a sekcí CDATA. Nic se nenahrává na server.

Převod

Jak používat převodník JSON na XML

  1. Zvol směr: JSON → XML nebo XML → JSON.
  2. Vlož data, nebo klikni na Otevřít soubor a načti soubor .json či .xml (do 10 MB).
  3. Nastav možnosti: Odsazení (2 mezery, 4 mezery, tabulátor nebo Žádné (kompaktní)) pro oba směry, Kořenový prvek a Přidat deklaraci XML pro JSON → XML a Převádět čísla a logické hodnoty pro XML → JSON.
  4. Klikni na Převést. Výsledek se aktualizuje i při psaní a chyby ukazují řádek a sloupec, kde byl problém nalezen.
  5. Výsledek zkopíruj nebo stáhni. Obrátit směr vloží výstup zpět do vstupu, takže můžeš zkontrolovat cestu tam a zpět.

Jak se JSON převádí na XML

XML a JSON nemají stejný datový model, proto se každý převodník řídí nějakou konvencí. Tento nástroj používá rozšířenou konvenci z knihovny fast-xml-parser:

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>
  • Klíče začínající znakem @ se stanou atributy a klíč #text drží text prvku, který má i atributy.
  • Pole se změní na opakovaný prvek se stejným názvem.
  • Dokument XML potřebuje právě jeden kořenový prvek. Pokud je tvůj JSON objekt s jediným klíčem, jehož hodnotou je objekt, stane se tento klíč kořenem. Jinak se celá hodnota obalí prvkem pojmenovaným v poli Kořenový prvek (výchozí je root) a položky pole na nejvyšší úrovni se stanou prvky <item>.
  • Klíče, které nejsou platnými názvy XML, se opraví: mezery a symboly se změní na _ a název začínající číslicí dostane na začátek _ ("1st place" → <_1st_place>).
  • null a prázdné řetězce dají prázdný prvek jako <note/>. Speciální znaky (&, <, >, uvozovky) se escapují.

Jak se XML převádí na JSON

  • Atributy se stanou klíči s předponou @ a smíšený text se změní na #text.
  • Opakované prvky se změní na pole, prvek, který se objeví jednou, se stane jedinou hodnotou.
  • Sekce CDATA se sloučí do textu a entity jako &amp; se dekódují. Deklarace XML, instrukce zpracování a komentáře se zahazují.
  • S volbou Převádět čísla a logické hodnoty se <price>12.5</price> změní na 12.5 a true na logickou hodnotu, zatímco hodnoty s počáteční nulou, například 007, zůstanou řetězci. Vypnutím volby zachováš každou hodnotu jako text.

Před převodem se XML zkontroluje na správné utvoření: chybějící koncová značka, nesouhlasící značka nebo neescapované & se ohlásí s řádkem a sloupcem.

Časté dotazy

Odesílají se moje data na server?

Ne. Převod probíhá celý ve tvém prohlížeči. Tvoje zdroje XML, zprávy SOAP a konfigurační soubory zůstávají na tvém počítači.

Proč se prvek v jednom souboru změní na pole a v jiném na objekt?

XML neříká, zda je prvek seznam. Když se <tag> objeví dvakrát, stane se polem, když jednou, je to jediná hodnota. Pokud tvůj kód očekává pole, ošetři oba případy, nebo při testování přidej druhý prvek.

Proč cesta tam a zpět není vždy totožná?

Některé informace nemají na druhé straně ekvivalent: komentáře, pořadí smíšeného obsahu nebo rozdíl mezi polem s jedním prvkem a jedinou hodnotou. U typických datových dokumentů dá převod JSON → XML → JSON stejnou strukturu.

Mohu používat jmenné prostory?

Ano. Názvy s předponou jako soap:Envelope a atributy jako @xmlns:soap se v obou směrech zachovají tak, jak jsou.

Ověřuje se podle schématu XSD?

Ne. Nástroj kontroluje, zda je XML správně utvořené, ale neověřuje ho podle DTD ani schématu XSD.