JSON in XML

Incolla un documento JSON e ottieni l’equivalente XML con il nome dell’elemento radice che scegli, una strategia coerente per gli array (elementi ripetuti o un wrapper), dichiarazione XML opzionale e indentazione ordinata. Utile quando un sistema legacy richiede XML e i tuoi dati upstream sono in JSON.

Come convertire JSON in XML

  1. 1

    Incolla JSON

    Oggetto o array a livello superiore. Dovrai dare un nome all'elemento radice.

  2. 2

    Nomina la radice

    XML richiede un singolo elemento radice. Il predefinito è `<root>`; dagli un nome significativo come `<users>` o `<response>`.

  3. 3

    Scegli la strategia per gli array

    "Elementi ripetuti" (ogni elemento dell'array diventa un fratello `<item>`) o "wrapper" (l'array va all'interno di un elemento wrapper nominato).

  4. 4

    Copia l'XML

    Dichiarazione XML opzionale, indentazione corretta e valori con escape per `<`, `>`, `&` e virgolette.

Esempio: elementi ripetuti

Input:

{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }

Output:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <users>
    <name>Alice</name>
  </users>
  <users>
    <name>Bob</name>
  </users>
</root>

Esempio: wrapper per array

Stesso input con la strategia “avvolgi gli array in <item>”:

<root>
  <users>
    <item>
      <name>Alice</name>
    </item>
    <item>
      <name>Bob</name>
    </item>
  </users>
</root>

Mappatura dei tipi

JSON XML
string contenuto di testo, con escape
integer / decimal contenuto di testo (senza annotazione di tipo XML)
boolean true / false come testo
null elemento vuoto (<foo/>) o omesso
array elementi ripetuti o wrapper + elementi
object elemento annidato con elementi figli

Attributi vs elementi

XML distingue gli attributi (<user id="1">) dagli elementi figli (<user><id>1</id></user>). Il convertitore predefinito utilizza elementi, sono senza perdita per il round-tripping. Se il tuo XML downstream richiede attributi, utilizza una convenzione di prefisso per le chiavi:

  • La chiave JSON @id diventa un attributo XML id="..." sull’elemento padre.
  • La chiave JSON #text diventa il contenuto di testo dell’elemento padre.

Queste convenzioni provengono dalle mappature BadgerFish e Parker, i due standard più comuni per JSON-to-XML.

Regole di escape

  • < -> &lt;
  • > -> &gt;
  • & -> &amp;
  • " -> &quot; (nei valori degli attributi)
  • ' -> &apos; (opzionale)
  • I byte in UTF-8 sono preservati, dichiarati nel prologo XML.

Errori comuni

  • Array JSON a livello radice. XML ha bisogno di un singolo elemento radice. Il convertitore avvolge un array in <root> (o qualunque nome tu scelga).
  • Chiavi numeriche. JSON {"1": "a"} è legale; i nomi degli elementi XML non possono iniziare con una cifra. Il convertitore antepone le cifre con un trattino basso (_1) o ti consente di definire una mappatura personalizzata.
  • Array misti. [1, "due", { "x": true }] non ha una mappatura pulita. Di solito significa che il JSON ha bisogno di normalizzazione prima della conversione.
  • Documenti enormi. XML è verboso, un JSON di 10 MB può diventare un XML di 20-30 MB. Considera la conversione in streaming per payload molto grandi.

Domande frequenti

Per specifica, XML richiede una singola radice. Se il tuo JSON è un array o ha più chiavi di livello superiore, il convertitore avvolge tutto in un elemento radice che puoi nominare (predefinito <root>).

Sì. Usa la convenzione del prefisso @ nelle tue chiavi JSON (ad es. "@id": 1) e quelle chiavi diventano attributi. Altre chiavi rimangono come elementi figli. Questo corrisponde alla mappatura BadgerFish.

Due strategie: elementi fratelli ripetuti (ogni elemento ottiene la chiave padre come tag), o un wrapper con elementi <item> all’interno. Scegli quella che corrisponde allo schema XML che stai mirando.

No. Il convertitore emette la dichiarazione XML (<?xml version="1.0"?>) ma non un DOCTYPE. Per XML che richiede un riferimento DTD o XSD, aggiungilo manualmente dopo la conversione.

Strumenti correlati

Strumento disponibile in altre lingue