Formatul pentru schimbul de informații JSON de fiecare dată a devenit mai popular în detrimentul XML. Multe servicii Web continuă să lucreze cu XML, dar mulți alții fac deja acest lucru numai cu JSON. Ne putem vedea în nevoia de a converti XML la JSON, în special în situațiile în care doriți să comunicați cu JavaScript, unde interpretarea unui lanț JSON este mult mai ușoară.
O modalitate rapidă este de a folosi JSON în biblioteca Java, folosind pachetul Org.json. Acest pachet poate fi descărcat în GitHub și adăugându-l în Classatul de proiect pentru a putea să-l redactați sau să-l adăugați ca pe o dependență a mastelor după cum urmează:
Una dintre funcțiile interesante ale acestui pachet este responsabil pentru conversia de la XML la JSON în sine. Această funcție se numește xmlstringtojsonsting și primește doi parametri. Primul este un șir cu lanțul XML, iar al doilea este un număr întreg cu factorul de identificare, adică numărul de spații cu care va fi identificat fiecare nivel al JSON rezultat. Conținutul acestei funcții este următorul.
public static String xmlStringToJSONString(String xmlString, int indentFactor) {JSONObject xmlJSONObj = XML.toJSONObject(xmlString);String string = xmlJSONObj.toString(indentFactor);return string;}
Exemplu de conversie a unui XML la JSON
Apoi, un exemplu simplu de Utilizarea acestei funcții. În acest exemplu, conținutul XML a fost declarat într-o variabilă (Xminrada) și este transmisă funcției responsabile de conversie, indicând patru spații de identificare. Rezultatul convertirii va fi afișat pe consola.
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()); }}}
La executarea codului anterior, ieșirea consolei ar fi după cum urmează. După cum se poate vedea, este un JSON valabil, cu patru spații de identitate la fiecare nivel al acesteia pentru a facilita citirea sa.
DIV ID = „21CEE11CF1”
{"serviceRequest": { "id": 123, "desc": "Hola"}}