Dvě struktury, ne dva zápisy
JSON zná objekty, pole, řetězce, čísla, logické hodnoty a null. XML má pojmenované prvky, atributy, textové uzly a uspořádaný strom dokumentu. Neexistuje obecné bezztrátové pravidlo pro převod libovolného JSON na libovolné XML. Převodník musí rozhodnout o kořeni, atributech a opakovaných potomcích. MultiVerto očekává objekt JSON s jediným klíčem jako kořen dokumentu XML. Název klíče se stane názvem prvku. Zvláštní objekt @attributes drží atributy a pole vytvářejí opakované prvky. Jde o dohody tohoto nástroje, nikoli názvy stanovené standardem XML. Před použitím na skutečná data si proto ujasněte cílové schéma.
Sledujte záznam objednávky
Ve vloženém příkladu má order objekt @attributes s id jako textem 7, pole item s hodnotami pen a book a count jako číslo 2. Nástroj JSON na XML vytvoří kořen order, atribut id, dva prvky item a prvek count. Opačný nástroj umí tento jednoduchý dokument přečíst. Opakované item seskupí do pole a atribut uloží pod @attributes. Obsah prvku však čte jako text: count, který začal jako číslo JSON 2, se vrátí jako řetězec 2. Zobrazená číslice je stejná, ale datový typ nikoli. Porovnávejte zpracované struktury dat, ne pouze vizuální výstup.
- JSON: count je číslo 2; item je pole
- XML: count je text; dva prvky item
- Zpět do JSON: count je text 2; zkontrolovat schéma
Kde se mění informace
Atribut a potomek jsou v XML různé věci; objekt JSON používá klíče, pokud mapování některé nevyhradí. Opakované prvky se mohou změnit na pole, ale jediný výskyt se může vrátit jako jednoduchá hodnota a překvapit program, který vždy očekává pole. Hodnoty null, číselná přesnost a logické hodnoty potřebují výslovná pravidla schématu, protože samotný text XML typ neprozradí. Na pořadí prvků může příjemci XML záležet, i když aplikace pořadí klíčů JSON ignoruje. MultiVerto záměrně odmítá XML s významovým textem smíšeným s vnořenými prvky a nepodporuje všechny konstrukce XML.
Nejprve navrhněte mapování
Při propojování služeb získejte vzorový dokument a schéma příjemce. Rozhodněte, zda má být položka atributem nebo prvkem a jak budou vypadat pole. Určete význam čísla, logické hodnoty, prázdného textu a chybějící položky. Je-li zdrojem XML, zkontrolujte jmenné prostory a smíšený obsah; jednoduchý převodník nemusí stačit a může být potřeba specializovaný parser. U zdroje JSON musí mít kořen jediný pojmenovaný objekt a klíče musí být platnými názvy prvků pro tento nástroj. Malý reprezentativní příklad převeďte v obou směrech a vyzkoušejte také ve skutečném cílovém systému.
Zkontrolujte návrat s cílem
Zkopírujte ukázkový výstup do propojeného převodníku XML na JSON a porovnejte obnovená data s původním JSON. Sledujte typy, opakování, umístění atributů a prázdné hodnoty. Nechte v poli item jen jeden prvek a ověřte, zda další aplikace stále očekává pole. Úvodní nulu u count zkoušejte jen tehdy, pokud ji dovoluje schéma; text a číslo mají rozdílný význam. Originál uchovejte spolu s převedeným souborem. Formátování XML usnadní kontrolu vnoření, ale neopraví nesprávné mapování. Úspěšné parsování dokazuje přijatelnou syntaxi, nikoli obchodní význam vyžadovaný druhým systémem.