[JAVA] Convertire un XML in JSON

Rispondi
Roberto
Amministratore
Messaggi: 160
Iscritto il: 19/12/2009, 19:30

[JAVA] Convertire un XML in JSON

Messaggio da Roberto »

Supponiamo di avere il seguente file in formato XML:

Codice: Seleziona tutto

<scrittore>
	<nome>Alessandro</nome>
	<cognome>Manzoni</cognome>
	<pubblicazioni>
		<libro>
			<codice>1111111111</codice>
			<titolo>Promessi Sposi</titolo>
		</libro>
	</pubblicazioni>
</scrittore>
Vogliamo trasformare questo codice in formato JSON, utilizziamo per questo scopo la libreria Apache org.json.JSONObject:

Codice: Seleziona tutto

static final int PRETTY_PRINT_IDENT_FACTOR = 4;

String xmlString = "<scrittore><nome>Alessandro</nome><cognome>Manzoni</cognome><pubblicazioni><libro><codice>1111111111</codice><titolo>Promessi Sposi</titolo></libro></pubblicazioni></scrittore>";

		try {
			JSONObject jobj = XML.toJSONObject(xmlString);
			String jsonPrettyPrintString = jobj.toString(PRETTY_PRINT_IDENT_FACTOR);
			System.out.println(jsonPrettyPrintString);
		} catch (JSONException e) {
			e.printStackTrace();
		}
PRETTY_PRINT_IDENT_FACTOR ci serve per formattare bene il codice JSON che tiriamo fuori;

xmlString non e' altro che il codice XML che per comodita' abbiamo memorizzato in una stringa;

XML.toJSONObject(xmlString) ci permette di trasformare la stringa contenente l'XML in un oggetto JSON;

jobj.toString(PRETTY_PRINT_IDENT_FACTOR) ci permette di trasformare l'oggetto JSON in una stringa perfettamente formattata.

Il risultato finale in output sara':

Codice: Seleziona tutto

{
"scrittore": {
    "cognome": "Manzoni",
    "nome": "Alessandro",
    "pubblicazioni": {"libro": {
        "codice": 1111111111,
        "titolo": "Promessi Sposi"
    }}
  }
}
Rispondi