Utilia

Convertitore da JSON a XML

Converti JSON in XML e XML in JSON nel browser, con gestione di attributi, elementi ripetuti e CDATA. Nulla viene caricato su un server.

Conversione

Come usare il convertitore da JSON a XML

  1. Scegli la direzione: JSON → XML oppure XML → JSON.
  2. Incolla i tuoi dati, oppure clicca su Apri un file per caricare un file .json o .xml (fino a 10 MB).
  3. Imposta le opzioni: Indentazione (2 spazi, 4 spazi, tabulazione o Nessuna (compatto)) per entrambe le direzioni; Elemento radice e Aggiungi la dichiarazione XML per JSON → XML; Converti numeri e booleani per XML → JSON.
  4. Clicca su Converti. Il risultato si aggiorna anche mentre scrivi, e gli errori mostrano la riga e la colonna in cui è stato trovato il problema.
  5. Copia o scarica il risultato. Inverti la direzione rimette l’output nella casella di input, così puoi verificare l’andata e ritorno.

Come il JSON diventa XML

XML e JSON non hanno lo stesso modello di dati, quindi ogni convertitore segue una convenzione. Questo strumento usa quella, molto diffusa, della libreria fast-xml-parser:

JSON XML
{"titolo": "Dune"} <titolo>Dune</titolo>
{"libro": {"@id": "42"}} <libro id="42"/>
{"p": {"@lang": "it", "#text": "Ciao"}} <p lang="it">Ciao</p>
{"tag": ["a", "b"]} <tag>a</tag><tag>b</tag>
  • Le chiavi che iniziano con @ diventano attributi, e la chiave #text contiene il testo di un elemento che ha anche degli attributi.
  • Un array diventa un elemento ripetuto con lo stesso nome.
  • Un documento XML ha bisogno di un solo elemento radice. Se il tuo JSON è un oggetto con una sola chiave il cui valore è un oggetto, quella chiave diventa la radice. Altrimenti l’intero valore viene avvolto nell’elemento indicato in Elemento radice (root per impostazione predefinita), e gli elementi di un array di primo livello diventano elementi <item>.
  • Le chiavi che non sono nomi XML validi vengono corrette: spazi e simboli diventano _, e un nome che inizia con una cifra riceve un _ iniziale ("1st place" → <_1st_place>).
  • null e le stringhe vuote danno un elemento vuoto come <nota/>. I caratteri speciali (&, <, >, virgolette) vengono protetti con l’escape.

Come l’XML diventa JSON

  • Gli attributi diventano chiavi con il prefisso @, e il testo misto diventa #text.
  • Gli elementi ripetuti diventano un array; un elemento che compare una sola volta diventa un valore singolo.
  • Le sezioni CDATA vengono unite al testo, e le entità come &amp; vengono decodificate. La dichiarazione XML, le istruzioni di elaborazione e i commenti vengono scartati.
  • Con Converti numeri e booleani, <prezzo>12.5</prezzo> diventa 12.5 e true diventa un booleano, mentre i valori con uno zero iniziale, come 007, restano stringhe. Disattiva l’opzione per tenere ogni valore come testo.

Prima della conversione si controlla che l’XML sia ben formato: un tag di chiusura mancante, un tag che non corrisponde o una & senza escape vengono segnalati con la loro riga e colonna.

Domande frequenti

I miei dati vengono inviati a un server?

No. La conversione avviene interamente nel tuo browser. I tuoi feed XML, i messaggi SOAP e i file di configurazione restano sul tuo computer.

Perché un elemento diventa un array in un file e un oggetto in un altro?

L’XML non dice se un elemento è un elenco. Quando <tag> compare due volte diventa un array; quando compare una volta sola è un valore singolo. Se il tuo codice si aspetta un array, gestisci entrambi i casi, oppure aggiungi un secondo elemento quando fai i test.

Perché l'andata e ritorno non è sempre identica?

Alcune informazioni non hanno un equivalente dall’altra parte: i commenti, l’ordine del contenuto misto o la differenza tra un array di un solo elemento e un valore singolo. Per i documenti di dati tipici, convertire JSON → XML → JSON restituisce la stessa struttura.

Posso usare i namespace?

Sì. I nomi con prefisso come soap:Envelope e gli attributi come @xmlns:soap vengono mantenuti così come sono in entrambe le direzioni.

Valida l'XML rispetto a uno schema XSD?

No. Controlla che l’XML sia ben formato, ma non lo valida rispetto a una DTD o a uno schema XSD.