DataSwap Convertitori di file e dati veloci, senza registrazione

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 &amp; 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 &amp; Co.</name>
    <tags>a</tags>
    <tags>b</tags>
  </person>
</root>

Nota che & è diventato &amp; 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.