Convertitore JSON in XML
Incolla JSON e ottieni XML istantaneamente. Converte oggetti, array e attributi @_ nel browser — nessun dato caricato. Gratuito, privato, senza registrazione.
Opzioni · 2 spazi · JSON → XML
Cos'è la Conversione JSON-in-XML e Come Funziona?
JSON (JavaScript Object Notation) e XML (Extensible Markup Language) sono entrambi formati di dati strutturati, ma hanno modelli fondamentalmente diversi: JSON è un albero di oggetti, array, stringhe, numeri, booleani e valori null senza alcun concetto di attributi o vincoli sull'elemento radice del documento; XML è un albero di elementi che possono portare attributi e contenuto testuale, e il documento deve avere esattamente un elemento radice. La conversione da JSON a XML richiede un insieme di convenzioni per colmare questa differenza.
Questo strumento usa la convenzione più ampiamente adottata — la stessa usata da fast-xml-parser (Node.js), xmltodict (Python) e JAXB (Java) — applicata al contrario:
**1. Normalizzazione dell'elemento radice.** La differenza più importante tra JSON e XML è il vincolo sulla radice. JSON non ha il concetto di radice; XML richiede esattamente una. Il convertitore gestisce automaticamente quattro casi. Un oggetto con una sola chiave usa quella chiave come radice XML: { "config": {...} } →
**2. Prefisso @_ → attributi XML.** Le chiavi JSON con prefisso @_ diventano attributi XML sull'elemento che le contiene. { "element": { "@_id": "42", "@_class": "primary" } } produce
**3. #text → contenuto testuale dell'elemento.** Quando un elemento ha bisogno sia di attributi che di contenuto testuale, il testo è memorizzato sotto la chiave #text: { "price": { "@_currency": "USD", "#text": "29.99" } } →
**4. Array → elementi fratelli con lo stesso nome ripetuto.** XML consente più elementi figlio con lo stesso nome; JSON usa gli array per le liste ordinate. Un array JSON sotto una chiave produce elementi figlio ripetuti che riutilizzano il nome della chiave: { "items": ["a", "b"] } produce
**5. Simmetrico con XML-in-JSON.** Le convenzioni @_ e #text usate qui sono esattamente le stesse convenzioni usate dallo strumento complementare Convertitore XML in JSON. Questo significa che un round-trip JSON → XML → JSON preserva attributi, contenuto testuale e struttura degli elementi — purché il JSON di input segua le convenzioni @_/#text.
**Quando convertire JSON in XML?** Gli scenari più comuni sono: (1) inviare dati a un servizio web SOAP o XML legacy che richiede un corpo di richiesta XML; (2) generare file di configurazione XML (Spring, Maven, Ant, risorse Android) da dati JSON; (3) produrre XML sitemap.xml o RSS feed da dati di contenuto JSON; (4) interoperare con sistemi enterprise (ERP, CRM, EDI) che consumano XML; (5) generare SVG o altri formati grafici basati su XML programmaticamente da dati JSON. Per formattare e validare l'XML risultante, usa il Formattatore XML.
// Convert JSON to XML in Node.js using fast-xml-parser
import { XMLBuilder } from 'fast-xml-parser';
const data = {
catalog: {
product: {
'@_id': 'P01',
'@_category': 'electronics',
name: 'Wireless Headphones',
price: {
'@_currency': 'USD',
'#text': '79.99'
}
}
}
};
const builder = new XMLBuilder({
attributeNamePrefix: '@_', // @_ keys become XML attributes
textNodeName: '#text', // #text key becomes element text content
ignoreAttributes: false, // process @_ attribute keys
format: true, // pretty-print with indentation
indentBy: ' ', // 2-space indent
});
const xml = builder.build(data);
console.log(xml);
// <catalog>
// <product id="P01" category="electronics">
// <name>Wireless Headphones</name>
// <price currency="USD">79.99</price>
// </product>
// </catalog> Funzionalità Principali
Conversione in Tempo Reale
L'output XML si aggiorna istantaneamente mentre digiti o incolli JSON — nessun pulsante Converti necessario. Gli input grandi (>200 KB) passano automaticamente alla modalità manuale per mantenere il browser reattivo.
Normalizzazione Automatica della Radice
XML richiede esattamente un elemento radice. Gli oggetti con una sola chiave usano la loro chiave come radice; gli oggetti con più chiavi si avvolgono in
Convenzione @_ per Attributi e #text
Le chiavi con prefisso @_ diventano attributi XML; la chiave #text diventa contenuto testuale dell'elemento. Questo corrisponde alla convenzione fast-xml-parser e xmltodict, rendendo l'output simmetrico con il Convertitore XML in JSON complementare.
Array in Elementi Ripetuti
Gli array JSON sotto una chiave producono elementi figlio ripetuti che riutilizzano il nome della chiave — nessuna singolarizzazione. { "items": [1, 2, 3] } produce tre fratelli
Privacy 100% Basata su Browser
Tutta la conversione avviene localmente nel browser usando JavaScript. Il tuo JSON — incluse credenziali, configurazioni interne e payload sensibili — non viene mai inviato ad alcun server, mai registrato e mai archiviato.
Round-Trip Simmetrico con XML in JSON
Le convenzioni @_ e #text sono condivise con il Convertitore XML in JSON complementare. Un round-trip JSON → XML → JSON preserva fedelmente attributi, contenuto testuale e struttura annidata.
Esempi
Oggetto Risposta API
{"user":{"id":42,"name":"Alice Kim","email":"alice@example.com","role":"admin","address":{"city":"Seoul","country":"KR"}}} Un oggetto JSON con una sola chiave in cui la chiave di primo livello diventa l'elemento radice XML. L'oggetto address annidato produce un elemento figlio
con figliArray di Primo Livello
[{"id":1,"name":"Widget A","price":9.99},{"id":2,"name":"Widget B","price":14.99},{"id":3,"name":"Widget C","price":4.49}] Quando l'intero input è un array JSON (non avvolto in un oggetto), il convertitore produce
Oggetto con Attributi e Contenuto Testuale
{"catalog":{"product":{"@_id":"P01","@_category":"electronics","name":"Wireless Headphones","price":{"@_currency":"USD","#text":"79.99"}}}} Le chiavi con prefisso @_ diventano attributi XML sull'elemento: @_id diventa id="P01" e @_category diventa category="electronics" sull'elemento
Come Usarlo
- 1
Incolla il tuo JSON
Inserisci o incolla i tuoi dati JSON nel campo di input qui sopra. Puoi anche cliccare 'Carica esempio' per provare un campione — un oggetto risposta API, un payload array o un oggetto che usa attributi @_ e #text.
- 2
Vedi l'Output XML in Tempo Reale
L'XML appare istantaneamente nel pannello di output. Gli oggetti con una sola chiave usano la loro chiave come radice; gli oggetti con più chiavi si avvolgono in
; le chiavi con prefisso @_ diventano attributi; gli array diventano elementi figlio ripetuti. Regola il rientro (2 o 4 spazi) secondo necessità. - 3
Copia o Scarica
Clicca Copia per portare l'XML negli appunti, o Scarica per salvarlo come file .xml. Per validare o riformattare il risultato, incollalo nel Formattatore XML.
Errori Comuni di Conversione
Oggetto con Più Chiavi Ottiene un Wrapper Inatteso
Se il tuo JSON di primo livello ha più chiavi, l'output le avvolge tutte in
// Input: { "status": 200, "data": { "id": 1 } }
// Output: <root><status>200</status><data><id>1</id></data></root>
// Root is <root> — may not match your schema // Wrap in a named key to control the root element
// Input: { "response": { "status": 200, "data": { "id": 1 } } }
// Output: <response><status>200</status><data><id>1</id></data></response> Array di Primo Livello Ottiene un Wrapper
Un array JSON di primo livello non ha nome di elemento, quindi viene avvolto come
// Input: [{ "id": 1 }, { "id": 2 }]
// Output: <root><item><id>1</id></item><item><id>2</id></item></root>
// Tag names are generic // Wrap in a named key for meaningful tag names
// Input: { "products": [{ "id": 1 }, { "id": 2 }] }
// Output: <root><products><id>1</id></products><products><id>2</id></products></root>
// Each array element reuses the key name "products" as its tag Chiavi Attributo Senza Prefisso @_
Per produrre un attributo XML, la chiave JSON deve avere il prefisso @_. Senza il prefisso, la chiave è trattata come un elemento figlio, non come un attributo.
// Input: { "tag": { "id": "42", "name": "Alice" } }
// Output: <tag><id>42</id><name>Alice</name></tag> ← id is a child element // Use @_ prefix for attributes
// Input: { "tag": { "@_id": "42", "name": "Alice" } }
// Output: <tag id="42"><name>Alice</name></tag> ← id is an attribute Elemento con Attributi e Testo — #text Mancante
Se vuoi che un elemento abbia sia attributi XML che contenuto testuale, devi usare la chiave #text per il testo. Senza di essa, il testo non ha dove andare e l'elemento sarà vuoto o produrrà un errore.
// Input: { "price": { "@_currency": "USD", "value": "29.99" } }
// Output: <price currency="USD"><value>29.99</value></price>
// Text is a child element, not text content // Use #text for element text content
// Input: { "price": { "@_currency": "USD", "#text": "29.99" } }
// Output: <price currency="USD">29.99</price> ← text content Chiavi JSON con Caratteri Non Validi per XML
I nomi degli elementi XML non possono iniziare con una cifra o contenere spazi, due punti (tranne per i prefissi di namespace) o la maggior parte dei caratteri speciali. Se le tue chiavi JSON contengono questi caratteri, l'XML di output sarà non valido. Rinomina le chiavi problematiche prima di convertire, o gestiscile in un passo di post-elaborazione.
// JSON key starts with digit — invalid XML element name
// Input: { "1stItem": "value" }
// Output: <1stItem>value</1stItem> ← invalid XML // Use a valid XML element name
// Input: { "firstItem": "value" }
// Output: <firstItem>value</firstItem> ← valid XML Caratteri Speciali nei Valori Non Codificati
Il contenuto testuale XML non deve contenere caratteri <, >, &, o " grezzi — devono essere codificati come <, >, & e ". Il convertitore codifica automaticamente questi caratteri nel contenuto testuale degli elementi e nei valori degli attributi. Se l'elaborazione a valle li codifica doppiamente, verifica che il tuo parser XML stia consumando byte XML grezzi invece di ricodificare contenuto già codificato.
// JSON: { "query": "name = 'Alice' & role = 'admin'" }
// Converter outputs: <query>name = 'Alice' & role = 'admin'</query>
// If double-processed: &amp; — consumer is re-escaping // Converter output is correct — consume it as XML, not as a raw string // <query>name = 'Alice' & role = 'admin'</query> // XML parser decodes to: name = 'Alice' & role = 'admin'
Casi d'Uso Comuni
- Chiamata a Servizi Web SOAP e XML Legacy
- Costruisci il payload JSON nella tua applicazione, convertilo in XML e invialo via POST all'endpoint SOAP. Questo evita di costruire manualmente stringhe XML e ti permette di lavorare con i dati in una struttura JSON nativa fino al momento in cui devi serializzarli per il servizio legacy.
- Generazione di File di Configurazione XML
- Spring, Maven, Ant, Tomcat e Android usano tutti formati di configurazione XML. Genera o trasforma i dati di configurazione come JSON — più facile da confrontare e versionare — poi converti in XML per il deployment.
- Produzione di Sitemap e Feed RSS XML
- I sistemi di gestione dei contenuti e i generatori di siti statici spesso archiviano i metadati delle pagine come JSON. Converti quei metadati in XML sitemap.xml o RSS feed per inviarli ai motori di ricerca o sindacare i contenuti ai lettori di feed.
- Integrazione Dati Enterprise (EDI / ERP / CRM)
- I sistemi ERP (SAP, Oracle), le piattaforme CRM e le reti EDI scambiano comunemente dati in XML. Converti le esportazioni JSON dalle API REST moderne in XML per alimentare questi sistemi senza costruire un serializzatore XML personalizzato.
- File di Risorse Android
- Le risorse stringa Android, i vincoli di layout e le voci del manifest sono tutti XML. Genera o aggiorna i file di risorse programmaticamente da sorgenti dati JSON e converti nel formato XML richiesto dal sistema di build Android.
- Generazione di SVG e Grafica Vettoriale
- SVG è XML. Costruisci la struttura SVG come dati JSON — path, forme, colori, trasformazioni — poi converti in XML per produrre file SVG validi per il web, la stampa o gli strumenti di editing vettoriale.
Dettagli Tecnici
- Analisi JSON Conforme a RFC 8259
- L'input JSON viene analizzato usando il JSON.parse() nativo del browser, pienamente conforme a RFC 8259. Fornisce messaggi di errore di sintassi accurati con informazioni di posizione (riga e colonna al meglio) e gestisce tutti i tipi di dati JSON: stringhe, numeri, booleani, null, array e oggetti.
- Serializzatore JSON-in-XML Ricorsivo Personalizzato
- Dopo l'analisi, un serializzatore ricorsivo personalizzato attraversa l'albero JSON. Le chiavi oggetto che iniziano con @_ vengono emesse come attributi XML sull'elemento genitore. La chiave #text viene emessa come contenuto testuale dell'elemento. Le chiavi oggetto semplici diventano elementi figlio. I valori array producono elementi fratelli con lo stesso nome ripetuto. I caratteri speciali (<, >, &, ", ') nel contenuto testuale e nei valori degli attributi vengono codificati come riferimenti a entità XML.
- Normalizzazione della Radice
- Poiché XML richiede esattamente un elemento radice, il serializzatore applica la normalizzazione della radice prima di costruire il documento: gli oggetti con una sola chiave usano quella chiave come radice; gli oggetti con più chiavi e gli array di primo livello ricevono un wrapper sintetico
. Questo garantisce che l'output sia sempre XML ben formato indipendentemente dalla forma dell'input. - 100% Basato su Browser — Nessun Upload, Nessun Server
- Tutta l'elaborazione avviene nel motore JavaScript del browser. Nessun dato viene trasmesso in rete in nessun momento. Gli input superiori a 200 KB passano automaticamente dalla modalità in tempo reale alla modalità manuale (richiedendo un clic esplicito su Converti) per mantenere il browser reattivo durante la serializzazione pesante.
Buone Pratiche
- Controlla l'Elemento Radice con un Oggetto a Chiave Singola
- Il modo più pulito per produrre XML significativo è assicurarsi che il tuo JSON di primo livello sia un oggetto con una sola chiave il cui nome è l'elemento radice desiderato. Avvolgere i dati multi-chiave sotto un'unica chiave con nome ti dà una radice semanticamente significativa invece del generico wrapper
. - Usa @_ e #text per XML con Molti Attributi
- Se lo schema XML target usa molti attributi (comune nei file di configurazione, SVG e envelope SOAP), rimodella il tuo JSON per usare chiavi con prefisso @_ e #text prima di convertire. L'XML risultante corrisponderà esattamente allo schema target senza post-elaborazione.
- Avvolgi gli Array in Oggetti con Nome per Nomi di Tag Significativi
- Un array di primo livello produce il pattern generico
, dove- ...
- è un nome letterale fisso. Avvolgere l'array sotto una chiave con nome — { "products": [...] } — produce elementi
ripetuti (il nome della chiave viene riutilizzato per ogni elemento dell'array) sotto un wrapper . Questo ti dà un nome di tag significativo per il dominio ed è quasi sempre preferibile per XML che sarà analizzato o validato da uno schema. - Valida l'Output con il Formattatore XML
- Dopo la conversione, incolla l'output XML nel Formattatore XML per validare la correttezza formale, verificare l'indentazione e identificare eventuali problemi strutturali prima di inviare l'XML a un servizio a valle o eseguirne il commit nel controllo versione.
- Sanifica le Chiavi JSON Prima di Convertire
- I nomi degli elementi XML devono iniziare con una lettera o un underscore e non possono contenere spazi o la maggior parte dei caratteri speciali. Se le tue chiavi JSON provengono da una fonte esterna (un nome di colonna di database, un nome di campo API o input dell'utente), verificane la validità come nomi XML prima di convertire per evitare output non valido.
Domande Frequenti
I miei dati JSON vengono inviati a un server quando uso questo strumento?
Come decide lo strumento quale sia l'elemento radice XML?
Perché un oggetto JSON con più chiavi viene avvolto in ?
Come si converte un array JSON di primo livello in XML?
Come si convertono le chiavi JSON in attributi XML?
A cosa serve la chiave #text?
L'indentazione influisce sulla struttura XML?
Come si converte in XML un array JSON annidato dentro un oggetto?
Come si converte XML di nuovo in JSON?
Posso validare o formattare l'output XML?
C'è un limite di dimensione per l'input JSON?
Quali tipi JSON sono supportati?
Strumenti correlati
Vedi tutti gli strumenti →Decodificatore e codificatore Base64
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Convertitore CSV in JSON
Codifica e formattazione
Converti CSV in JSON nel browser. RFC 4180, inferenza tipi, riga header, sicuro per big-int. 100% privato, nessun upload.
JSON Diff (Confronta)
Codifica e formattazione
Confronta due file JSON istantaneamente nel browser. Evidenziazione affiancata, output JSON Patch RFC 6902, ignora campi rumorosi come timestamp e ID. 100% privato, nessun upload.
Formattatore e Validatore JSON
Codifica e formattazione
Formatta, valida e abbellisci JSON direttamente nel browser. Strumento online gratuito con controllo sintassi, rilevamento errori, minifica e copia in un clic. 100% privato.
Validatore JSON Schema
Codifica e formattazione
Valida JSON contro qualsiasi JSON Schema istantaneamente nel browser. Supporta Draft 2020-12, 2019-09 e Draft-07 con messaggi di errore con percorso preciso. 100% privato — nessun upload, nessun account, gratis.
Convertitore JSON in CSV
Codifica e formattazione
Converti JSON in CSV nel browser. Preset RFC 4180, Excel-EU, TSV, Pipe. Appiattisci o stringifica i dati nidificati. 100% privato, nessun upload.