100 % locale — i tuoi dati non lasciano mai il tuo browser

JSON in XML — XML valido, pronto da incollare

Converti JSON in XML. Una sola radice, nomi di tag resi validi e indentazione a tua scelta: pronto per un corpo SOAP o un file di configurazione.

Istantaneo Privato Zero cookie
Indentazione
Inverti: XML → JSON

Input JSON

Output XML

Che cosa fa questo strumento

Le chiavi diventano elementi, i valori il loro contenuto:

{ "utente": { "nome": "Ada", "porta": 8080, "attivo": true } }
<utente>
  <nome>Ada</nome>
  <porta>8080</porta>
  <attivo>true</attivo>
</utente>

Un documento con più chiavi alla radice viene avvolto in <root>, perché XML ammette esattamente un elemento radice. Un array alla radice diventa elementi <item> ripetuti al suo interno.

Qui i tipi smettono di esistere

Guarda di nuovo quell’uscita. 8080 e true ora sono testo, e nulla nel documento dice che siano mai stati altro.

Non è un limite della conversione: è ciò che XML è. Un documento XML porta struttura e testo. I tipi vengono da uno schema — XSD, DTD, RELAX NG — che vive fuori dal documento e che questa conversione non può inventare.

La conseguenza pratica va detta senza giri di parole: riconvertire ti darà stringhe. {"port": 8080} torna come {"port": "8080"}, a meno che chi lo legge decida altrimenti — cioè indovini, e sbagli su un numero di versione come 1.10 o un CAP come 01234.

Se ti serve un andata e ritorno che conservi i tipi, XML è la destinazione sbagliata. Se ti serve XML, metti in conto un ritorno con perdita.

Le chiavi sono riparate, non emesse rotte

Un nome di elemento XML non può contenere spazi né iniziare con una cifra:

chiaveelemento
user name<user_name>
2nd<_2nd>

E quando due chiavi vengono riparate nello stesso nome, la seconda diventa user_name_1. Fonderle farebbe sparire un valore in silenzio, che è ciò che questo strumento più si sforza di evitare.

Gli attributi, e l’andata e ritorno

Una chiave scritta "@_id" diventa un attributo, "#text" diventa il testo dell’elemento:

{ "utente": { "@_id": "1", "#text": "Ada" } }
<utente id="1">Ada</utente>

È la stessa convenzione emessa dal verso XML verso JSON: un documento convertito da XML si riconverte nella stessa forma — con i tipi ora stringhe, come sopra.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Perché il mio numero è tornato come stringa?
Perché XML non ha tipi. `{"port": 8080}` diventa `<port>8080</port>`, e un documento XML non può dire se sia un numero o il testo «8080». Riconvertire ti dà una stringa, a meno che qualcosa — uno schema, o un convertitore che indovina — decida altrimenti. L’informazione si perde nel passaggio a XML, non al ritorno.
Che succede a una chiave che non è un nome di elemento valido?
Viene riparata: `user name` diventa `<user_name>`, `2nd` diventa `<_2nd>`. E se due chiavi vengono riparate nello stesso nome, la seconda riceve un suffisso — `user_name_1` — invece di sovrascrivere la prima: un valore che sparisce senza dire nulla è peggio di un nome brutto.
Posso produrre attributi invece di elementi?
Sì. Una chiave chiamata `"@_id"` diventa l’attributo `id`, e una chiave `"#text"` diventa il testo dell’elemento. È la convenzione prodotta dal verso XML verso JSON, quindi un documento passato di lì si riconverte nella stessa forma.

Convertitori correlati