Convertitore XML in JSON gratuito

Converti XML in JSON istantaneamente. Gestisce attributi, elementi nidificati e nodi di testo. Funziona interamente nel tuo browser.

I tuoi dati non lasciano mai il tuo dispositivo
Rilascia il file XML qui o clicca per sfogliare (max 5 MB)

Cos’è XML?

XML (Extensible Markup Language) è un formato per archiviare e trasportare dati. Utilizza tag personalizzati per descrivere la struttura dei dati, rendendolo leggibile dall’uomo e ampiamente supportato. A differenza di JSON, XML può includere attributi sugli elementi.

Perché convertire XML in JSON?

Domande frequenti

Come vengono gestiti gli attributi XML?

Gli attributi XML vengono convertiti in proprietà JSON con prefisso «@». Ad esempio, Anna diventa {"user": {"@id": "1", "#text": "Anna"}}. Questo preserva la distinzione tra attributi e contenuto testuale.

E i namespace?

I prefissi dei namespace XML vengono mantenuti nei nomi delle chiavi JSON. Le dichiarazioni di namespace (xmlns) appariranno come attributi regolari che iniziano con «@xmlns» nell’output.

Posso convertire JSON di nuovo in XML?

Questo strumento converte solo XML in JSON. Per la conversione inversa, prova il nostro convertitore JSON in XML che inverte il processo utilizzando la stessa convenzione per attributi e nodi di testo.

Due formati, tre decenni di distanza

XML 1.0 è diventato una W3C Recommendation il 10 febbraio 1998. I redattori originali erano Tim Bray (Textuality / Netscape), Jean Paoli (Microsoft) e C. M. Sperberg-McQueen (University of Illinois at Chicago); il Working Group era presieduto da Jon Bosak di Sun Microsystems. La discendenza di XML risale a SGML (ISO 8879:1986), lo standard di markup dei documenti cresciuto a partire da GML di IBM negli anni '70. SGML era potente ma impegnativo; l'obiettivo di progettazione di XML era «progettare una versione 'lite' di SGML», eliminando le funzionalità opzionali a favore di un profilo implementabile in poche migliaia di righe di codice, preservando al contempo Unicode, i namespace e i documenti ricchi di attributi.

JSON (JavaScript Object Notation) è stato scoperto, non progettato. Douglas Crockford e Chip Morningstar hanno inviato il primo messaggio JSON nell'aprile 2001 a State Software, derivando il formato dalla sintassi degli oggetti letterali di JavaScript. Crockford ha registrato json.org nel 2002 e ha pubblicato una specifica di una pagina. Il formato è stato formalizzato per la prima volta come RFC 4627 nel luglio 2006, ripubblicato come RFC 7159 nel 2014 e stabilizzato come RFC 8259 / STD 90 nel dicembre 2017, lo stesso anno in cui ECMA-International ha pubblicato ECMA-404. L'intento progettuale di JSON (dalla retrospettiva di Crockford): minimale, indipendente dal linguaggio, facile da generare e analizzare, nessun numero di versione («non esiste un numero di versione»), e deliberatamente privo di commenti («ho rimosso i commenti perché vedevo che le persone li usavano come direttive di parsing»).

JSON ha dominato le API web alla fine degli anni 2000, man mano che REST sostituiva SOAP e XMLHttpRequest cedeva il passo a JSON-over-fetch. Entro il 2015 JSON era il formato di risposta predefinito di quasi ogni API pubblica; XML è sopravvissuto nell'enterprise SOA a coda lunga, nei formati documento (Office Open XML, OpenDocument) e nelle nicchie vincolate agli standard.

Dove XML e JSON differiscono

XMLJSON
AttributiNativi (<item id="5"/>)Nessun attributo, tutto è una coppia chiave/valore
NamespacesNativi (xmlns:prefix="uri")Nomi piatti; le collisioni di prefisso sono un problema dell'applicazione
Commenti<!-- … -->Nessuno per specifica
Contenuto mistoNativo (<p>text <b>and</b> markup</p>)Goffo, richiede array o stringificazione
SchemaDTD, XSD 1.0 (2001) / 1.1 (2012), RELAX NG, SchematronJSON Schema (specifica della comunità, bozza 2020-12)
OrdineL'ordine degli elementi è significativo per specificaOrdine delle chiavi dell'oggetto non garantito (la maggior parte dei parser preserva l'ordine di inserimento in pratica); gli array sono ordinati
NumeriStringhe finché tipizzate dallo schemaDouble IEEE 754; nessuna distinzione intero/float a livello di specifica
VerbositàAlta (ogni valore racchiuso in tagBassa) solo punteggiatura

Perché XML→JSON è fondamentalmente con perdite

Non esiste una mappatura canonica approvata dal W3C da XML a JSON. Ogni convertitore deve inventare risposte alle domande che XML consente di esprimere ma per le quali JSON non ha vocabolario nativo. Le decisioni ricorrenti:

Quando si userebbe questo strumento

Alternative moderne

Altre domande

Perché lo stesso XML produce una forma JSON diversa su strumenti diversi?

Perché non esiste una mappatura canonica XML→JSON. Ogni convertitore sceglie una convenzione (BadgerFish, Parker, JsonML, GData-style) e le forme JSON risultanti differiscono nel modo in cui vengono marcati gli attributi, in come viene preservato il contenuto misto e in come vengono disposti in array i figli ripetuti. Il round-trip dell'XML attraverso convertitori diversi produce JSON diversi; il round-trip del JSON di ritorno in XML attraverso convertitori diversi può cambiare la posizione degli attributi e persino l'ordine degli elementi. Per l'interoperabilità, documentare la convenzione utilizzata e rispettarla.

E le sezioni CDATA, i commenti e le istruzioni di elaborazione?

Le sezioni CDATA (<![CDATA[…]]>) vengono appiattite in contenuto stringa semplice; il wrapper viene eliminato, ma il testo interno viene preservato verbatim. I commenti XML (<!-- … -->) e le istruzioni di elaborazione (<?xml-stylesheet …?>) vengono eliminati, poiché JSON non ha sintassi per nessuno dei due. Se è necessaria la fedeltà del round-trip che preserva i commenti, un round-trip solo XML è l'approccio corretto.

Il mio schema XML (XSD) sopravviverà alla conversione?

No. XSD descrive la struttura e i tipi XML; JSON Schema è lo standard analogo (separato) per JSON. Alcuni strumenti avanzati possono tradurre XSD in JSON Schema, ma è un'operazione con perdite; XSD ha funzionalità (contenuto misto, gruppi di sostituzione, tipi derivati) che non hanno un equivalente pulito in JSON Schema. Per la validazione dei documenti che conta, eseguire XSD sull'XML originale, non sulla conversione JSON.

Perché JSON ha vinto per le API web?

Alcune ragioni. JSON si mappa direttamente sugli oggetti JavaScript, quindi il parsing lato browser dista una chiamata JSON.parse(). Il formato è molto più piccolo: nessun tag di chiusura, nessuna dichiarazione di namespace, nessun peso dello schema. REST ha sostituito SOAP per la maggior parte delle API pubbliche alla fine degli anni 2000, e JSON era il payload naturale per REST. I punti di forza di XML (schemi rigorosi, namespace, contenuto misto) contano per i documenti e i sistemi enterprise legacy, ma raramente per «dammi l'oggetto utente». Il web si è ottimizzato per il caso più semplice.

Vengono inviati dati a un server?

No. L'XML viene analizzato dal DOMParser nativo del browser, poi percorso ricorsivamente in JavaScript per costruire l'output JSON. L'XML incollato non lascia mai la pagina. Lo strumento funziona offline una volta caricato, il che conta quando l'XML sorgente contiene endpoint API interni, dati dei clienti o schemi proprietari che si preferisce non caricare da nessuna parte.

Strumenti correlati