🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Esercizi JSON e XML in Java

Codegrind Team•Jul 12 2024

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();
        }
    }
}