Command Palette

Search for a command to run...

Convertitore XML a JSON: trasforma Soap, RSS e Config XML in JSON pulito

Convertitore XML a JSON: trasforma Soap, RSS e Config XML in JSON pulito

T
Toolz Team
|Jul 14, 2026|16 min letto

Parte della raccolta Strumenti per i dati

Non esiste una mappatura standard tra i due. XML1.0 ha attributi, spazi dei nomi, contenuti misti ordinati e commenti; RFC 8259 ha sei tipi e nessun attributo Ogni convertitore inventa il proprio bridge, motivo per cui due di loro non sono d'accordo.

L'integrazione che mi ha insegnato a rispettare la conversione da XML a JSON è stata l'API di un corriere di spedizione. Riposo moderno ovunque nello stack, e poi questo endpoint legacy che parlava di sapone e restituiva buste di XML che dovevo piegare in una pipeline JSON. "È solo XML per JSON", ho pensato, e ho raggiunto un convertitore di una riga. Poi sono arrivati i casi di bordo: a <Package> elemento che a volte era un singolo oggetto ea volte un elenco, a seconda di quanti pacchetti c'erano nell'ordine. un' id Attributo che il mio convertitore ingenuo ha eliminato del tutto perché ha esaminato solo il testo dell'elemento. un' <Description> avvolto in CDATA perché conteneva una e commerciale Ognuno di questi ha silenziosamente corrotto i dati - il JSON è uscito con l'aria plausibile e si sbagliava in modi che mostravano solo tre servizi a valle.

XML e JSON sembrano come dovrebbero convertirsi banalmente l'uno nell'altro, e lo fanno&#39; t, perché modellano i dati con diverse primitive JSON ha oggetti, array, stringhe, numeri, booleani e null - un piccolo insieme pulito XML ha elementi, attributi, nodi di testo, contenuto misto, spazi dei nomi, CDATA, commenti e istruzioni di elaborazione, e soprattutto ha Nessun array e Nessun tipo. Quindi un convertitore deve prendere decisioni che un formato senza perdita di dati non dovrebbe: dove vanno gli attributi quando JSON non ne ha idea? Come si fa a distinguere un singolo elemento da un elenco di un elemento quando XML contrassegna entrambi allo stesso modo? Cosa succede a un elemento che ha sia attributi che testo?

un' Convertitore da XML a JSON ciò rende quelle decisioni deliberatamente - e costantemente - è la differenza tra un'integrazione pulita e una settimana di debug a valle Quello che ho creato per le mappe Toolz.dev attribuisce a chiavi prefissate quindi nulla viene perso, fa crollare i tag ripetuti negli array JSON in modo che la struttura venga preservata, mantiene il testo a contenuto misto sotto una chiave dedicata e legge CDATA alla lettera. E fa tutto con un parser privo di dipendenze che viene eseguito nel tuo browser, il che conta perché i payload di integrazione sono esattamente il tipo di dati che dovresti & #39; t caricare su un server estraneo & #39; s.

Questa guida spiega come la conversione gestisce le stranezze strutturali di XML, quando gli elementi ripetuti diventano array, come gestire gli attributi e gli spazi dei nomi e i flussi di lavoro SOAP e RSS in cui questa conversione avviene costantemente.

tl; dr: Incolla XML nel Toolz.dev Convertitore XML a JSON, scegli il rientro e ottieni JSON pulito dove diventano gli attributi @-Tasti prefissati, tag ripetuti diventano array, testo a contenuto misto si trova sotto #text, e CDATA viene letto alla lettera. Giri di analisi di tipo opzionale "44.95" in un numero reale. Utilizza un parser senza dipendenze, esegue il 100% dal lato client, quindi i payload di SOAP e integrazione non vengono mai caricati e si accoppiano con JSON a Yaml E il Formattatore JSON per il prossimo passo nella tua pipeline.


Perché XML per JSON è una semplice mappatura individuale?

L'intuizione che XML e JSON sono intercambiabili deriva dal loro lavoro condiviso - che rappresenta i dati strutturati - e rompe sui loro diversi elementi costitutivi La mancata corrispondenza si manifesta in quattro punti specifici, e un convertitore&#39;s qualità è interamente su come li gestisce.

Gli attributi non hanno equivalenti JSON. <book id="bk101">War and Peace</book> ha un attributo (id) e testo (contenuto) (War and Peace). JSON non ha nozione di attributo; tutto è una coppia chiave-valore Un convertitore deve inventare una convenzione, e quella diffusa è prefissare le chiavi degli attributi - { "book": { "@id": "bk101", "#text": "War and Peace" } }. Elimina gli attributi, come fanno i convertitori ingenui, e hai perso i dati silenziosamente.

JSON ha array; XML non ha. In XML, un elenco è solo lo stesso tag ripetuto: tre <item> elementi sotto un genitore. Ma un singolo <item> sembra strutturalmente identico a un elenco di uno. JSON deve sapere se emettere un oggetto o un array e l'unico segnale disponibile è l'occorrenza, quindi i tag ripetuti diventano array e i tag singoli rimangono oggetti.

Contenuto misto. Un elemento può contenere sia elementi figlio che testo sciolto. Gli oggetti JSON non possono rappresentare naturalmente "questo oggetto ha anche un valore di stringa nudo", quindi il testo passa sotto una chiave riservata come #text.

I tipi non esistono in XML. Ogni valore in XML è testo. <price>44.95</price> è la stringa "44.95"non un numero, a meno che un convertitore non scelga di costringerlo - e quella scelta può essere sbagliata, perché <zip>08544</zip> deve rimanere una stringa o perdere il suo zero iniziale.

la convertitore gestisce ciascuno di questi in modo esplicito piuttosto che fingere di non esistere. Ecco perché l'output rimane fedele alla fonte invece di far cadere silenziosamente le parti di XML per cui JSON non ha slot.

Quando gli elementi ripetuti diventano array?

Questa è la parte più confusa della conversione da XML a JSON, e vale la pena capire piuttosto che essere sorpreso. la regola il convertitore Usi è basato su occorrenze: all'interno di un dato genitore, se un nome di tag appare più di una volta, i suoi valori si riducono in un array JSON; se appare esattamente una volta, rimane un singolo oggetto o valore.

Quindi un <catalog> con due <book> i bambini produce { "catalog": { "book": [ {...}, {...} ] } } - un array. Ma un <catalog> con uno <book> produce { "catalog": { "book": {...} } } - un oggetto semplice, nessun array.

La conseguenza per pianificare: Un elenco di un elemento non sembra un elenco. Se il tuo codice a valle si aspetta catalog.book Per essere sempre un array e lo itera su di esso, una risposta a libro singolo la romperà, perché book sarà un oggetto in quel particolare momento. Questo è&#39;t un bug nella conversione - it&#39;s una conseguenza inevitabile di XML che non contrassegna gli elenchi - ma it&#39;s un vero e proprio gotcha nelle integrazioni in cui varia il conteggio degli articoli Il mio disastro del vettore di spedizione è stato esattamente questo: gli ordini a pacchetto unico hanno restituito un oggetto in cui gli ordini a pacchetto multiplo restituivano un array e il mio codice presupponeva l'array.

Il modello difensivo nel codice di consumo è normalizzare: se un campo può essere, forzalo a un array prima dell'iterazione ([].concat(catalog.book)). informato perché La forma varia è ciò che ti consente di scrivere quella guardia invece di farti bruciare da essa.

Come vengono gestiti gli attributi e gli spazi dei nomi?

Gli attributi si convertono in chiavi oggetto con un @ prefisso. <user role="admin" active="true"> diventa { "user": { "@role": "admin", "@active": "true" } }. Il prefisso mantiene gli attributi visivamente distinti dagli elementi figlio e previene una collisione in cui un attributo e un elemento figlio condividono un nome Se non hai & #39; t bisogno di attributi a tutti - si desidera solo i dati elemento - il convertitore ha un'opzione "ignora attributi" che li rilascia completamente per un risultato più pulito.

Gli spazi dei nomi vengono visualizzati come parte del nome del tag. <soap:Body> diventa una chiave letteralmente chiamata "soap:Body", e xmlns:soap="..." è un attributo come un altro, atterrando sotto @xmlns:soap. Questa è la scelta pragmatica: risolvere completamente gli spazi dei nomi ai loro URI produrrebbe chiavi ingombranti e raramente corrisponde a ciò che il codice di integrazione vuole effettivamente, che è affrontare soap:Body con il suo nome prefisso familiare. Se stai elaborando SOAP o SVG o qualsiasi vocabolario con spaziatura dei nomi, i prefissi che conosci dall'XML sono le chiavi che ottieni nel JSON.

Sezioni CDATA - il <![CDATA[ ... ]]> i blocchi che consentono a XML di trasportare testo grezzo con caratteri speciali - vengono letti alla lettera, senza decodifica di entità, che è esattamente il loro scopo. UN <script> oppure <description> Avvolto in CDATA per proteggere le sue e commerciali e le parentesi angolari arriva intatte con quei caratteri. CData al di fuori, entità standard (&lt;, &amp;, e amici) e riferimenti numerici (&#233;, &#xE9;) vengono decodificati ai loro caratteri effettivi.

Come si converte XML in JSON con lo strumento?

Passaggio 1: incolla il tuo XML

Qualsiasi XML ben formato funziona - con o senza il <?xml ?> Dichiarazione, con o senza spazi dei nomi. La dichiarazione, il doctype, i commenti e le istruzioni di elaborazione vengono riconosciute e saltate, quindi puoi incollare un documento completo direttamente da una risposta API o da un file. Il pulsante Carica esempio fornisce un catalogo con attributi, elementi nidificati e un tag ripetuto, in modo da poter vedere ogni comportamento di conversione contemporaneamente.

Passaggio 2: scegli le tue opzioni

Scegli un rientro a 2 o 4 spazi per il JSON. Decidi se includere attributi o rilasciarli. E scegli se analizzare i tipi: lascialo spento e ogni valore rimane una stringa (sicuro, senza perdita), attiva e numeri inequivocabili e booleani diventano numeri e booleani reali. Off è l'impostazione predefinita giusto quando valori come codici postali o ID potrebbero avere zeri iniziali che devi preservare.

Passaggio 3: converti e rivedi

Il convertitore analizza per primo e segnala un markup non valido - un tag di chiusura non corrispondente, un elemento non chiuso, un blocco CDATA non terminato - con un messaggio specifico anziché produrre Garbage JSON Al successo, il JSON appare con conteggi di linee e byte. Sfioralo per confermare che le decisioni array-vs-oggetto corrispondono alle tue aspettative.

Passaggio 4: copia o scarica

Copia il JSON negli appunti per incollarlo nel codice o scaricalo come a .json file. Da qui si inserisce in un corpo di richiesta, in un archivio dati o nella fase successiva della pipeline. Se il passaggio successivo è un formato di configurazione, il Convertitore JSON a YAML lo porta oltre.

Quali sono i flussi di lavoro comuni per questa conversione?

Integrazione di API SOAP legacy

Il SOAP è ancora ovunque nei sistemi aziendali, bancari, logistici e governativi e parla esclusivamente XML. Quando un moderno servizio JavaScript o nodo deve utilizzare una risposta SOAP, la conversione dell'inviluppo XML in JSON è il passaggio uno. La conversione per preservare lo spazio dei nomi significa soap:Body e soap:Envelope Mantieni i loro nomi familiari e la gestione degli attributi mantiene i metadati che SOAP ama appendere elementi. Questa è la stessa categoria di lavori di colla coperta nel Guida al debug delle API.

Lettura di feed RSS e atomi

I feed RSS e Atom sono XML e inserirli in un'app JavaScript significa convertirli. un feed&s <item> gli elementi sono il caso del tag ripetuto del libro di testo: diventano un array di elementi JSON, esattamente quello che desideri .map() oltre per rendere un elenco. attributi come un recinto url e type vengono conservati sotto le chiavi prefissate, quindi i podcast e i feed multimediali mantengono intatti i loro collegamenti audio.

Migrazione di file di configurazione e dati

Le applicazioni più vecchie memorizzano la configurazione e i dati in XML - pensa .config File, sitemap, set di dati esportati, frammenti XML di Office Open. La conversione di questi in JSON è la prima mossa quando si modernizza un sistema o si importano dati legacy in un negozio nativo JSON. L'opzione di analisi del tipo è utile qui quando tu sapere I campi numerici sono genuinamente numerici e li vogliono digitati nella destinazione.

Test e prototipazione

Quando si & #39; ri cablare un flusso di dati e solo bisogno di vedere la forma di un payload XML come JSON - per progettare un'interfaccia TypeScript, per deridere una risposta, per controllare un percorso di campo - una rapida conversione nel browser batte la scrittura di codice parser usa e getta Convertire, leggere la struttura, scrivere i tuoi tipi contro di esso.

XML vs JSON: Quando si adatta ogni formato?

XML json
ERA PRIMARIA ed ECOSTOLAMENTO impresa, sapone, documenti API Web, JavaScript, Configurazione
attributi di prima qualità Nessuno: mappato su tasti prefissati
schiera Nessuno: i tag ripetuti implicano elenchi di prima qualità
tipo Tutto il testo stringhe, numeri, booleani, null
commentario supportato non nelle specifiche
Spazi dei nomi di prima qualità Nessuno: mantenuto come nomi di chiavi prefissate
verbosità Più in alto - chiusura tag, attributi Inferiore - bretelle e staffe
Habitat naturale SOAP, RSS/Atom, Formati Office, Configurazione API REST, dati front-end, package.json

Il modello dietro la tabella: XML è stato costruito per documenti e interscambio aziendale in cui la struttura, la convalida e l'autodescrizione contano; JSON è stato costruito per il web dove la leggerezza e una mappa diretta agli oggetti JavaScript contano La direzione di conversione è prevalentemente XML-to-JSON perché il movimento nel settore proviene da vecchi sistemi basati su XML verso front-end e servizi nativi JSON - you&#39; incontra i dati legacy dove vivono e li porta in una pipeline moderna Il più ampio insieme di strumenti di formato per quella pipeline è nel Guida agli strumenti di codifica.

È sicuro convertire XML che contiene dati sensibili?

I payload di integrazione sono densi di cose che non vuoi perdere: risposte SOAP che trasportano record dei clienti, file di configurazione con endpoint interni e credenziali, esportazioni di dati con informazioni personali. E questi sono esattamente ciò che viene incollato in convertitori online, di solito a metà integrazione, di solito di fretta.

la Convertitore Toolz.dev analizza e converte interamente nel tuo browser con un parser senza dipendenze - no DOMParser, nessuna chiamata del server, nessun dato che esce dalla pagina. Disconnetti la tua rete dopo il caricamento della pagina e funziona ancora. Questo è un fatto architettonico su come viene costruito lo strumento, non una promessa in un documento politico, ed è il principio del browser in primo luogo dietro l'intera cassetta degli strumenti, dettagliato nel Guida alla privacy dei dati.

Si applica l'avvertenza standard: la conversione lato client protegge il passaggio di conversione Ciò che fai con il JSON in seguito - dove lo incolli, a cosa lo invii - è una decisione separata Ma la trasformazione stessa mantiene il tuo XML sulla tua macchina.

FAQ

Come faccio a convertire XML in JSON online?

Incolla il tuo XML nel convertitore da XML a JSON e fai clic su Converti Lo strumento analizza l'XML, lo converte in JSON con il rientro e le opzioni scelti e ti consente di copiare o scaricare il risultato L'elaborazione è al 100% nel browser: non viene caricato nulla.

Come vengono rappresentati gli attributi XML nell'output JSON?

Gli attributi diventano chiavi oggetto prefissate con @, quindi un elemento del libro con id=&quot;bk101&quot; si converte in una chiave &quot;@id&quot;. Ciò mantiene gli attributi distinti dagli elementi figlio. Puoi disattivare completamente l'output dell'attributo con l'opzione Ignore-attributi se hai solo bisogno dei dati dell'elemento.

Perché alcuni elementi XML diventano array e altri rimangono oggetti?

JSON non ha modo di contrassegnare che un elemento possa ripetere, quindi il convertitore usa l'occorrenza: se un tag appare più di una volta sotto lo stesso genitore diventa un array e se appare una volta che rimane un singolo oggetto. Questo rispecchia fedelmente la fonte, anche se significa che un elenco con un elemento assomiglia a un singolo oggetto anziché a un array.

Il convertitore gestisce le sezioni CDATA e le entità XML?

si. I blocchi CDATA vengono letti alla lettera senza decodifica dell'entità, che è il loro scopo. Al di fuori dei CDATA, le entità standard come &lt;, &gt;, &amp;, &quot; e &apos; e i riferimenti di caratteri numerici come &#233; e & &#xe9; sono decodificato nei loro caratteri effettivi.

Posso convertire una risposta SOAP o un feed RSS in JSON?

Sì. le buste SOAP e i feed RSS o Atom sono normali XML, quindi si convertono come qualsiasi altro documento I tag namespaced mantengono il loro prefisso nel nome chiave - soap: Body diventa un & quot; soap: Body&quot; key - e gli elementi ripetuti come gli elementi RSS diventano un array JSON su cui puoi mappare.

Numeri e booleani rimarranno come testo dopo la conversione?

Per impostazione predefinita sì, poiché XML non ha sistemi di tipo e valori come "007" o "1.10" possono essere significativi come testo. Abilita l'opzione di analisi del tipo per convertire testi numerici e booleani inequivocabili in numeri e booleani reali JSON quando è quello che vuoi.

È sicuro convertire XML che contiene dati sensibili?

Sì. Il parser viene eseguito interamente in JavaScript nel browser: nessuna richiesta di rete trasporta i tuoi dati, nulla viene registrato o archiviato e lo strumento funziona offline. XML con record dei clienti, identificatori interni o segreti di integrazione non lascia mai la tua macchina.

Qual è la differenza tra XML e JSON?

XML è un linguaggio di markup con tag di apertura e chiusura, attributi, spazi dei nomi e commenti, progettati per documenti e scambio di dati aziendali. JSON è un formato più leggero costruito da oggetti, array e valori primitivi ed è l'impostazione predefinita per le moderne API Web. La conversione di XML in JSON è comune quando si integrano i vecchi sistemi SOAP o basati su feed con i front-end JavaScript.


XML e JSON sembrano intercambiabili e sono&#39; t, perché JSON non ha attributi, array per ripetizione e nessun testo accanto ai bambini: i luoghi esatti in cui una conversione ingenua perde silenziosamente i dati Un convertitore che gestisce quei casi di proposito ti dà JSON che&#39; è fedele alla fonte: Incolla il tuo XML, controlla come mappa gli attributi e i tag ripetuti e porta dati puliti nella tua pipeline invece di una corruzione dall'aspetto plausibile.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!