Convertitore da JSON a XML
Incolla il tuo JSON qui sotto e ottieni XML ben formato
all'istante — costruito con le API native del DOM del browser (
createElement, appendChild, XMLSerializer), non con concatenazione di stringhe,
così i caratteri speciali vengono sottoposti a escaping
automaticamente. Nulla di ciò che incolli esce mai dal tuo
browser.
Costruisci XML con le API native degli elementi del DOM, non con la concatenazione di stringhe
Questo strumento non assembla mai l'XML incollando stringhe
insieme — invece chiama document.implementation.createDocument() per
costruire un vero Document XML, poi createElement
e appendChild per farlo crescere, e consegna
l'albero finito a new XMLSerializer().serializeToString(doc). Questo
conta perché il contenuto testuale assegnato tramite el.textContent viene sottoposto a escaping
automaticamente e correttamente dal browser — un & nei tuoi dati diventa & nell'output senza che questo strumento
debba ricordarsi di farlo da solo. Le chiavi degli oggetti
diventano nomi di tag degli elementi figli. I valori degli array
non ricevono mai un elemento contenitore: ogni elemento ripete
la chiave dell'array come fratello — un array "tags" con due voci produce due elementi <tags> fratelli, non un singolo <tags> che contiene un elenco. I valori
primitivi (stringhe, numeri, booleani) diventano il contenuto
testuale dell'elemento, e tutto viene avvolto in un elemento
radice che puoi nominare tu stesso.
Esempio pratico
Input: {"person":{"name":"O'Brien & Co.","tags":["a","b"]}}
— un apostrofo e una & in un nome, e un array di due elementi.
La conversione produce:
<root>
<person>
<name>O'Brien & Co.</name>
<tags>a</tags>
<tags>b</tags>
</person>
</root>
Nota che & è diventato &
automaticamente — è XMLSerializer a farlo, non una
regola di sostituzione scritta a mano — e tags ha
prodotto due elementi fratelli invece di un elemento che
comprime entrambi i valori su una sola riga. Ora prova con una
chiave che non può essere un nome di tag, come {"1° posto": "oro"} — invece di emettere XML
rotto, questo strumento ti dice esattamente quale chiave è
fallita e perché. Devi andare nella direzione opposta? Il Convertitore da XML a JSON
analizza vero XML e lo converte in JSON usando il DOMParser
nativo del browser.
Domande frequenti
Come viene convertito un array JSON in XML? Ottengo un elemento contenitore?
Nessun contenitore — ogni elemento dell'array diventa un proprio elemento fratello che ripete la chiave dell'array. {"tag":["math","computing"]} diventa <tag>math</tag><tag>computing</tag>, non un elemento <tag> che contiene due figli. Questo rispecchia il modo in cui l'XML viene effettivamente scritto nella pratica: elementi fratelli ripetuti, non un singolo elemento che avvolge un elenco. Un array JSON di primo livello senza chiave (nessun oggetto contenitore) usa il nome di elemento "item" per ogni voce, poiché non c'è alcuna chiave da ripetere a quel livello.
Cosa succede se una delle mie chiavi JSON non è un nome di elemento XML valido?
Viene rifiutata con un messaggio chiaro invece di produrre silenziosamente XML rotto. I nomi degli elementi devono iniziare con una lettera o un underscore e contenere solo lettere, numeri, underscore, trattini e punti — nessuna cifra iniziale, nessuno spazio, nessun due punti. Una chiave come "1° posto" o "nome completo" fallisce immediatamente questo controllo, prima che venga costruito qualsiasi elemento, e il messaggio di errore indica esattamente quale chiave è fallita.
Posso cambiare il nome dell'elemento radice?
Sì — il campo "Elemento radice" sopra l'input lo controlla, e usa "root" come predefinito se lo lasci vuoto. Passa esattamente lo stesso controllo di validità di qualsiasi altra chiave, quindi un nome radice non valido viene rifiutato allo stesso modo di una chiave oggetto non valida.
Cosa succede con i valori null, gli oggetti vuoti e gli array vuoti?
Un valore null diventa un elemento vuoto — <secondoNome/> invece di una stringa letterale come "null". Anche un oggetto vuoto {} diventa un elemento vuoto, poiché non ha chiavi da trasformare in figli. Un array vuoto [] non produce alcun elemento per quella chiave, perché ci sono zero elementi da ripetere — questa è la conseguenza diretta del fatto che gli array non ricevono un elemento contenitore.
Il mio JSON viene caricato da qualche parte?
No. L'XML viene costruito interamente nel tuo browser usando le API native del DOM — document.implementation.createDocument(), createElement e XMLSerializer — nulla di ciò che incolli viene inviato, salvato o registrato su un server. Questo vale per ogni strumento di questo sito.