Conversione da XML a JSON
Converte in JSON i dati in formato XML. Permette di esaminare interamente nel navigatore il contenuto delle risposte delle vecchie interfacce XML, delle integrazioni SOAP e dei flussi RSS e Atom, con la convenzione che riporta gli attributi in @attributes, il testo in #text e gli elementi ripetuti in vettori.
Consigli per l'uso
- Gli elementi dotati di attributi li raccolgono in un oggetto sotto la chiave `@attributes`, distinto dal testo e dagli elementi figli.
- Negli elementi in cui attributi, elementi figli e testo convivono, la parte testuale è collocata nella chiave `#text`: non c'è quindi rischio di scambiarla con il valore di un attributo.
- Quando più elementi fratelli portano lo stesso nome, sono automaticamente raccolti in un vettore: tre elementi `
- ` danno un vettore di tre elementi, uno solo resta un oggetto singolo.
- Un elemento vuoto, privo di attributi, testo ed elementi figli — per esempio `
` — è convertito nel valore nullo. - I prefissi degli spazi dei nomi non sono separati: il nome dell'elemento resta nella forma `ns:tag` e si usa così come chiave.
Domande frequenti
A proposito — perché fra XML e JSON non esiste un'unica risposta giusta
Fra XML e JSON non esiste una convenzione di conversione assoluta, a differenza della semplice corrispondenza fra righe e oggetti che lega CSV e JSON. Nell'XML possono convivere tre generi di informazione — attributi, nodi di testo ed elementi figli — mentre il JSON dispone della sola corrispondenza fra chiave e valore: occorre dunque stabilire di volta in volta qualche accordo. Come rappresentare gli attributi, che cosa privilegiare quando testo ed elementi figli convivono: su questi punti le principali realizzazioni hanno adottato convenzioni diverse.
Ciò nonostante le occasioni di trattare XML non mancano. Le interfacce web di tipo SOAP, le integrazioni di antica data fra sistemi finanziari, amministrativi e sanitari, i flussi RSS e Atom, i file di disposizione delle applicazioni Android: sono molti gli ambiti in cui XML è tuttora il formato standard. Resta perciò forte l'esigenza di portare i dati ricavati da questi meccanismi datati nelle moderne catene di strumenti pensate per il JSON, dall'elaborazione con jq alla manipolazione degli oggetti in JavaScript.
La convenzione qui adottata, fondata su `@attributes` e `#text`, non si spinge fino alle notazioni più fitte di simboli e sceglie una forma semplice, di uso comune nella pratica. Gli elementi foglia privi di attributi conservano il testo come valore diretto, il che rende maneggevole il JSON nei casi ordinari — un valore di configurazione, il titolo di una notizia — mentre soltanto gli elementi con attributi sono distinti in modo esplicito: guardando il risultato si capisce dunque a colpo d'occhio da quale valore originario provenga ciascuna parte.