Che cosa fa questo strumento
Ogni elemento diventa una chiave; i suoi figli diventano il valore.
<user id="1"><name>Ada</name></user>
{ "user": { "name": "Ada", "@_id": "1" } }
Tre punti in cui i modelli divergono
XML e JSON non descrivono le stesse forme, e ogni convertitore deve scegliere. Queste sono le scelte.
Gli attributi
Diventano chiavi con prefisso @_. JSON ha un solo tipo di membro; XML ha attributi ed elementi, che possono avere lo stesso nome — <user id="1"><id>2</id></user> contiene due cose diverse chiamate id. Il prefisso le tiene distinte. Un interruttore scarta gli attributi se non ti servono.
Quando un elemento porta insieme testo e attributi, il testo finisce sotto #text.
La ripetizione
Un <item> dà un oggetto. Due danno un array.
<r><i>1</i></r> → { "r": { "i": 1 } }
<r><i>1</i><i>2</i></r> → { "r": { "i": [1, 2] } }
Non è un difetto correggibile: nulla in un documento XML dice se un elemento è ripetibile. Solo uno schema lo sa. Se il tuo codice si aspetta una lista, normalizzala all’arrivo.
Il contenuto misto
Questo JSON semplicemente non sa esprimerlo, ed è meglio dirlo senza giri di parole.
<p>Ciao <b>mondo</b> ancora</p>
JSON non ha modo di dire che Ciao precedeva <b> e ancora lo seguiva. I frammenti di testo vengono raccolti sotto #text e la loro posizione rispetto agli elementi va perduta, insieme alla spaziatura tra loro. Se ciò che conta è il testo — un documento più che un record — non convertire: usa il formattatore XML.
I tipi
<a>1</a> dà il numero 1. <a>007</a> dà la stringa "007", perché uno zero iniziale di solito è un CAP o un numero di conto, e leggerlo come sette lo perde. Anche un identificatore di venti cifre resta una stringa: un numero JSON lo arrotonderebbe.
Che cosa non è un dato
La dichiarazione XML e ogni istruzione di elaborazione vengono scartate. Descrivono il documento, non il suo contenuto — una chiave ?xml accanto al tuo elemento radice non è mai stata un’informazione che avevi chiesto.
Privato per progettazione
Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.