Il formato per lo scambio di informazioni JSON ogni volta è diventato più popolare per scapito di XML. Molti servizi Web continuano a lavorare con XML, ma molti altri lo fanno già con JSON. Possiamo vedere noi stessi nella necessità di convertire XML in JSON, specialmente in situazioni in cui si desidera comunicare con JavaScript, dove l’interpretazione di una catena JSON è molto più facile.
Un modo rapido è utilizzare la libreria JSON in Java, utilizzando il pacchetto Org.json. Questo pacchetto può essere scaricato in GitHub e aggiungerlo nel PACE PACET DI PROGETTO per poterlo fare riferimento o aggiungerlo come dipendenza da Maven come segue:
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId></dependency>
Una delle funzioni interessanti di questo pacchetto è responsabile della conversione da XML a JSON stesso. Questa funzione è chiamata XMLStringTojsonstruing e riceve due parametri. La prima è una stringa con la catena XML e il secondo è un numero intero con il fattore di identificazione, cioè il numero di spazi con cui verrà identificato ciascun livello del JSON risultante. Il contenuto di questa funzione è il seguente.
public static String xmlStringToJSONString(String xmlString, int indentFactor) {JSONObject xmlJSONObj = XML.toJSONObject(xmlString);String string = xmlJSONObj.toString(indentFactor);return string;}
Esempio di come convertire un XML in JSON
Avanti, un semplice esempio di Uso di questa funzione. In questo esempio, il contenuto del XML è stato dichiarato in una variabile (XMLentrada) e viene passata alla funzione responsabile della conversione, indicando quattro spazi di identificazione. Il risultato della conversione verrà visualizzato sulla console.
import org.json.JSONException;import org.junit.Test;public class Xml2JSONTests{public void testXml2JSON() throws Exception{String xmlEntrada = "<?xml version=\"1.0\" ?>" +"<serviceRequest><id>123</id><desc>Hola</desc></serviceRequest>"; try { System.out.println(xmlStringToJSONString(xmlEntrada, 4)); } catch (JSONException je) { System.out.println(je.toString()); }}}
Durante l’esecuzione del codice precedente, l’output della console sarebbe il seguente. Come si può vedere, è un JSON valido, con quattro spazi di identità ad ogni livello di esso per facilitare la sua lettura.
{"serviceRequest": { "id": 123, "desc": "Hola"}}