📢 Nuovo Corso Laravel API disponibile!

Esercizi JSON e XML in Java

Ecco degli esercizi con soluzione per praticare l’uso di JSON e XML in Java.

JSON

Esercizio 1: Parsing di un JSON Semplice

Parse di una stringa JSON e stampa dei valori utilizzando la libreria `org.json`.
import org.json.JSONObject;
public class ParsingJsonSemplice {
public static void main(String[] args) {
String jsonString = "{\"nome\":\"Mario\", \"eta\":30, \"citta\":\"Roma\"}";
JSONObject jsonObject = new JSONObject(jsonString);
String nome = jsonObject.getString("nome");
int eta = jsonObject.getInt("eta");
String citta = jsonObject.getString("citta");
System.out.println("Nome: " + nome);
System.out.println("Età: " + eta);
System.out.println("Città: " + citta);
}
}

Esercizio 2: Creazione di un JSON

Creare un oggetto JSON a partire da valori Java utilizzando la libreria `org.json`.
import org.json.JSONObject;
public class CreazioneJson {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("nome", "Luca");
jsonObject.put("eta", 25);
jsonObject.put("citta", "Milano");
System.out.println(jsonObject.toString());
}
}

Esercizio 3: Parsing di un Array JSON

Parse di un array JSON e stampa dei valori utilizzando la libreria `org.json`.
import org.json.JSONArray;
import org.json.JSONObject;
public class ParsingJsonArray {
public static void main(String[] args) {
String jsonString = "[{\"nome\":\"Mario\", \"eta\":30}, {\"nome\":\"Luca\", \"eta\":25}]";
JSONArray jsonArray = new JSONArray(jsonString);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String nome = jsonObject.getString("nome");
int eta = jsonObject.getInt("eta");
System.out.println("Nome: " + nome);
System.out.println("Età: " + eta);
}
}
}

Esercizio 4: Creazione di un Array JSON

Creare un array JSON a partire da valori Java utilizzando la libreria `org.json`.
import org.json.JSONArray;
import org.json.JSONObject;
public class CreazioneJsonArray {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("nome", "Mario");
jsonObject1.put("eta", 30);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("nome", "Luca");
jsonObject2.put("eta", 25);
jsonArray.put(jsonObject1);
jsonArray.put(jsonObject2);
System.out.println(jsonArray.toString());
}
}

Esercizio 5: Lettura di un File JSON

Leggere un file JSON e stampare i valori utilizzando la libreria `org.json`.
import org.json.JSONArray;
import org.json.JSONObject;
import java.nio.file.Files;
import java.nio.file.Paths;
public class LetturaFileJson {
public static void main(String[] args) {
try {
String jsonString = new String(Files.readAllBytes(Paths.get("data.json")));
JSONArray jsonArray = new JSONArray(jsonString);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String nome = jsonObject.getString("nome");
int eta = jsonObject.getInt("eta");
System.out.println("Nome: " + nome);
System.out.println("Età: " + eta);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Esercizio 6: Scrittura di un File JSON

Creare e scrivere un file JSON utilizzando la libreria `org.json`.
import org.json.JSONArray;
import org.json.JSONObject;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ScritturaFileJson {
public static void main(String[] args) {
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("nome", "Mario");
jsonObject1.put("eta", 30);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("nome", "Luca");
jsonObject2.put("eta", 25);
jsonArray.put(jsonObject1);
jsonArray.put(jsonObject2);
try {
Files.write(Paths.get("output.json"), jsonArray.toString().getBytes());
System.out.println("File JSON scritto con successo!");
} catch (Exception e) {
e.printStackTrace();
}
}
}

XML

Esercizio 7: Parsing di un XML Semplice

Parse di una stringa XML e stampa dei valori utilizzando la libreria `javax.xml.parsers`.
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public class ParsingXmlSemplice {
public static void main(String[] args) {
try {
String xmlString = "<persone><persona><nome>Mario</nome><eta>30</eta></persona><persona><nome>Luca</nome><eta>25</eta></persona></persone>";
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new java.io.ByteArrayInputStream(xmlString.getBytes()));
NodeList listaPersone = document.getElementsByTagName("persona");
for (int i = 0; i < listaPersone.getLength(); i++) {
Node nodo = listaPersone.item(i);
if (nodo.getNodeType() == Node.ELEMENT_NODE) {
Element elemento = (Element) nodo;
String nome = elemento.getElementsByTagName("nome").item(0).getTextContent();
String eta = elemento.getElementsByTagName("eta").item(0).getTextContent();
System.out.println("Nome: " + nome);
System.out.println("Età: " + eta);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Esercizio 8: Creazione di un XML

Creare una stringa XML a partire da valori Java utilizzando la libreria `javax.xml.parsers` e `org.w3c.dom`.
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class CreazioneXml {
public static void main(String[] args) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("persone");
doc.appendChild(rootElement);
Element persona1 = doc.createElement("persona");
rootElement.appendChild(persona1);
Element nome1 = doc.createElement("nome");
nome1.appendChild(doc.createTextNode("Mario"));
persona1.appendChild(nome1);
Element eta1 = doc.createElement("eta");
eta1.appendChild(doc.createTextNode("30"));
persona1
.appendChild(eta1);
Element persona2 = doc.createElement("persona");
rootElement.appendChild(persona2);
Element nome2 = doc.createElement("nome");
nome2.appendChild(doc.createTextNode("Luca"));
persona2.appendChild(nome2);
Element eta2 = doc.createElement("eta");
eta2.appendChild(doc.createTextNode("25"));
persona2.appendChild(eta2);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
} catch (ParserConfigurationException | TransformerException e) {
e.printStackTrace();
}
}
}

Esercizio 9: Lettura di un File XML

Leggere un file XML e stampare i valori utilizzando la libreria `javax.xml.parsers`.
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
public class LetturaFileXml {
public static void main(String[] args) {
try {
File inputFile = new File("data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(inputFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("persona");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Nome: " + eElement.getElementsByTagName("nome").item(0).getTextContent());
System.out.println("Età: " + eElement.getElementsByTagName("eta").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

Esercizio 10: Scrittura di un File XML

Creare e scrivere un file XML utilizzando la libreria `javax.xml.parsers` e `javax.xml.transform`.
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import java.io.File;
public class ScritturaFileXml {
public static void main(String[] args) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("persone");
doc.appendChild(rootElement);
Element persona1 = doc.createElement("persona");
rootElement.appendChild(persona1);
Element nome1 = doc.createElement("nome");
nome1.appendChild(doc.createTextNode("Mario"));
persona1.appendChild(nome1);
Element eta1 = doc.createElement("eta");
eta1.appendChild(doc.createTextNode("30"));
persona1.appendChild(eta1);
Element persona2 = doc.createElement("persona");
rootElement.appendChild(persona2);
Element nome2 = doc.createElement("nome");
nome2.appendChild(doc.createTextNode("Luca"));
persona2.appendChild(nome2);
Element eta2 = doc.createElement("eta");
eta2.appendChild(doc.createTextNode("25"));
persona2.appendChild(eta2);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File("output.xml"));
transformer.transform(source, result);
System.out.println("File XML scritto con successo!");
} catch (ParserConfigurationException | TransformerException e) {
e.printStackTrace();
}
}
}