Vai al contenuto
TextArray
100% locale

Convertitore da XML a JSON

Converti XML in JSON equivalente, con attributi preceduti e tag ripetuti come array.

Ingresso

Convertitore da XML a JSON

XML e JSON descrivono entrambi dati strutturati, ma gli strumenti che ti circondano raramente li parlano entrambi. Una vecchia API SOAP, un feed RSS, un layout Android, un file di configurazione o un'esportazione di dati ti forniscono XML; il tuo script, il tuo database o il tuo frontend vogliono JSON. Questo strumento converte tra loro con un vero parser - non un hack regex - che gestisce correttamente le parti scomode di XML: elementi annidati, attributi, contenuto misto, tag a chiusura automatica, commenti, sezioni CDATA, dichiarazione XML e DOCTYPE.

La mappatura segue la convenzione ampiamente utilizzata. Gli attributi di un elemento diventano chiavi con il prefisso @ (configurabile), quindi <user id="7"> fornisce "@id": "7". Gli elementi figlio nidificano come oggetti; quando un tag si ripete (tre elementi <item> di seguito) si comprime in un unico array, che è esattamente ciò che desideri per gli elenchi. Un elemento che contiene solo testo diventa una semplice stringa; uno che ha sia testo che attributi mantiene il suo testo sotto una chiave #text. Entità come & e riferimenti numerici come A vengono decodificati e il contenuto CDATA viene preso alla lettera.

Poiché è un vero parser a discesa ricorsiva, convalida mentre legge: un tag di chiusura non corrispondente, un commento non terminato o un contenuto vagante dopo la radice produce un chiaro errore con il numero di riga, anziché alterare silenziosamente l'output. Scegli il rientro di due o quattro spazi per un risultato leggibile oppure riducilo a una singola riga per l'incorporamento.

Tutto viene eseguito localmente nel tuo browser: i tuoi dati non lasciano mai il tuo dispositivo, il che è importante per le esportazioni XML che spesso contengono record e identificatori.

FAQ

Come vengono rappresentati gli attributi XML nel JSON?
Come tasti con il prefisso @ per impostazione predefinita (è possibile modificare il prefisso). Quindi <book lang="en"> diventa { "book": { "@lang": "en" } }. Questa è la convenzione utilizzata da librerie come xml-js e badgerfish, quindi l'output rientra nella maggior parte delle toolchain.
Cosa succede con i tag ripetuti?
Diventano un array. Tre elementi secondari <item> si riducono a "item": [ … ], che è ciò di cui ha bisogno un elenco. Un tag che appare una volta rimane un valore singolo: nota che significa un documento con un elemento e un altro con diverse mappe su forme diverse, che è inerente a XML→JSON.
Gestisce contenuti misti e CDATA?
SÌ. Un elemento con testo e figli (o attributi) mantiene il suo testo sotto la chiave #text. Le sezioni CDATA vengono prese alla lettera, quindi il loro markup <raw> e i caratteri & sopravvivono senza essere analizzati. I commenti e le istruzioni di elaborazione vengono saltati.
Perché ha segnalato un errore invece di eseguire la conversione?
È un parser di convalida: un tag di chiusura non corrispondente, un attributo senza virgolette, un commento o un contenuto senza terminazione dopo l'elemento root interrompono tutti la conversione con un messaggio numerato alla riga. Ciò è intenzionale: una conversione sbagliata ma silenziosa è peggiore di un errore evidente.
Il mio XML è caricato da qualche parte?
No. L'analisi e la conversione vengono eseguite interamente nel tuo browser e i tuoi dati non lasciano mai il tuo dispositivo.