Conversione da JSON a XML
Converte in XML i dati in formato JSON. La convenzione riporta la chiave @attributes negli attributi dell'elemento, #text nel contenuto testuale e i vettori in elementi fratelli omonimi; tutto si svolge nel navigatore. Si usa in coppia con lo strumento affine di conversione da XML a JSON.
Consigli per l'uso
- Assegnando un oggetto alla chiave `@attributes`, ciascuna sua proprietà diventa un attributo dell'elemento risultante.
- La chiave `#text` serve a esprimere il contenuto testuale di un elemento che convive con attributi o elementi figli. Per un elemento semplice, privo di attributi, basta assegnare direttamente una stringa come valore.
- Assegnando un vettore a una chiave, ciascun elemento del vettore è prodotto come elemento fratello omonimo, ripetuto.
- Assegnando il valore nullo si ottiene un marcatore autoconcluso vuoto, come `
`, privo di attributi, testo ed elementi figli. - Lo strumento presuppone in ingresso il formato prodotto dalla conversione affine da XML a JSON: un oggetto la cui chiave è il nome dell'elemento radice, con una sola chiave al livello superiore.
Domande frequenti
A proposito — a che cosa badare quando si «torna» dal JSON all'XML
La conversione da XML a JSON somiglia a una compressione dell'informazione. L'XML può portare tre generi di informazione — attributi, testo ed elementi figli — mentre il JSON dispone della sola corrispondenza fra chiave e valore: occorre perciò adottare una convenzione, qui fondata su quattro accordi, cioè `@attributes`, `#text`, i vettori e il valore nullo. Rispettata quella convenzione, il ritorno dal JSON all'XML è meccanicamente univoco; forzando invece la conversione di un JSON di forma libera, non si distingue più ciò che è attributo da ciò che è elemento e il risultato può divergere dalle attese.
Nella pratica capita di convertire in JSON la risposta di una vecchia interfaccia XML, elaborarla in JavaScript e riconvertirla in XML per inviarla a un altro sistema: per esempio quando occorre rimandare come richiesta SOAP ciò che si è comodamente elaborato in JSON. In queste conversioni di andata e ritorno la coerenza della convenzione è la cosa più importante: inserendo per strada uno strumento che ne adotti una diversa, la corrispondenza fra attributi e testo si guasta.
La regola rigorosa secondo cui al livello superiore deve esserci una sola chiave riflette la specifica stessa dell'XML, che vuole un unico elemento radice. Se dovete convertire un JSON con più chiavi al livello superiore, racchiudetele prima in una chiave genitrice comune, per esempio `root`, e otterrete un XML con un solo elemento radice.