Convertissez un JSON en Java : Parsing et conversion de donn

Voici une proposition de meta description pour votre article : "Apprenez à extraire des données JSON avec Java et Gson ! Découvrez comment convertir un objet J

Mahmoud DEVO
Mahmoud DEVO
December 27, 2025 4 min read
Convertissez un JSON en Java : Parsing et conversion de donn
Table of Contents

Manipulation de JSON et XML en Java : une approche structurée

Introduction

Le format JSON (JavaScript Object Notation) et le langage XML (Extensible Markup Language) sont deux formats populaires pour représenter des données structurées. En tant que développeur, il est essentiel de connaître comment manipuler ces formats dans votre code Java. Dans cet article, nous allons explorer les étapes nécessaires pour lire et écrire du JSON et du XML en utilisant les bibliothèques Gson et JAXP.

Section 107.9 : Extrait d’un élément JSON

Supposons que vous ayez un chaîne JSON contenant des informations sur une personne :

{
  "name": "John",
  "age": 21
}

Pour extraire les valeurs de l’élément name et age, nous pouvons utiliser la bibliothèque Gson comme suit :

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class JsonExtrait {
  public static void main(String[] args) {
    String json = "{\"name\": \"John\", \"age\":21}";
    JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
    System.out.println(jsonObject.get("name").getAsString()); // John
    System.out.println(jsonObject.get("age").getAsInt()); // 21
  }
}

Section 107.10 : Encoding de données en JSON

Si vous devez créer un objet JSON et y ajouter des valeurs, vous pouvez utiliser la classe JSONObject comme suit :

import javax.json.JSONObject;
import javax.json.JsonArray;

public class JsonEncoding {
  public static void main(String[] args) {
    // Création d'un objet JSON vide
    JSONObject object = new JSONObject();
    
    // Ajout de valeurs à l'objet JSON
    object.put("foo", "bar");
    object.put("temperature", 21.5);
    object.put("year", 2016);
    
    // Ajout d'un autre élément au sein de l'objet
    JSONObject secondary = new JSONObject();
    secondary.put("Hello", "world");
    object.put("message", secondary);
    
    // Création d'une liste de valeurs
    JsonArray someMonths = new JsonArray(new String[] {"January", "February"});
    someMonths.add("March"); // Ajout d'un élément à la fin de la liste
    someMonths.add(4, "May"); // Ajout d'un élément en position 5
    
    // Ajout de la liste à l'objet JSON
    object.put("months", someMonths);
    
    // Conversion de l'objet JSON en chaîne
    String json = object.toString();
    System.out.println(json);
  }
}

Section 107.11 : Décodage de données JSON

Pour extraire les valeurs d’un objet JSON, vous pouvez utiliser la classe JSONObject comme suit :

import javax.json.JSONObject;
import javax.json.JsonArray;

public class JsonDecoding {
  public static void main(String[] args) {
    String json = "{\"foo\":\"bar\",\"temperature\":21.5,\"year\":2016,\"message\":{\"Hello\":\"world\"},\"months\":[ \"January\",\"February\",\"March\",null,\"May\"]}";
    
    // Décodage de la chaîne JSON en objet
    JSONObject object = new JSONObject(json);
    
    // Extraction des valeurs de l'objet JSON
    String foo = object.getString("foo");
    double temperature = object.getDouble("temperature");
    int year = object.getInt("year");
    
    // Extraction d'un autre élément au sein de l'objet
    JSONObject secondary = object.getJSONObject("message");
    String world = secondary.getString("Hello");
    
    // Extraction d'une liste de valeurs
    JsonArray someMonths = object.getJSONArray("months");
    System.out.println(someMonths.length()); // Nombre d'éléments dans la liste
    String february = someMonths.getString(1); // Extrait du deuxième élément de la liste
  }
}

Section 108.1 : Parsing d’un document XML avec StAX

Pour parser un document XML, vous pouvez utiliser la bibliothèque StAX (Streaming API for XML) comme suit :

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamReader;

public class StaxParsing {
  public static void main(String[] args) throws Exception {
    String xmlDocument = "<?xml version='1.0' encoding='UTF-8' ?>" +
                         "<library>" +
                         "<book id='1'>Effective Java</book>" +
                         "<book id='2'>Java Concurrency In Practice</book>" +
                         "<notABook id='3'>This is not a book element</notABook>" +
                         "</library>";
    
    // Création d'une instance de parser
    XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory();
    XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(new StringReader(xmlDocument));
    
    // Extraction des valeurs du document XML
    Map<Integer, String> bookTitlesById = new HashMap<>();
    while (xmlStreamReader.hasNext()) {
      switch (xmlStreamReader.getEventType()) {
        case XMLStreamConstants.START_ELEMENT:
          System.out.println("Found start of element: " + xmlStreamReader.getLocalName());
          if ("book".equals(xmlStreamReader.getLocalName())) {
            int bookId = Integer.parseInt(xmlStreamReader.getAttributeValue("", "id"));
            String bookTitle = xmlStreamReader.getElementText();
            bookTitlesById.put(bookId, bookTitle);
          }
          break;
        default:
          break;
      }
      xmlStreamReader.next();
    }
    
    System.out.println(bookTitlesById);
  }
}

Section 108.2 : Parsing et navigation d’un document XML avec DOM

Pour parser un document XML, vous pouvez utiliser la bibliothèque DOM (Document Object Model) comme suit :

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class DOMParsing {
  public static void main(String[] args) throws Exception {
    String xmlDocument = "<?xml version='1.0' encoding='UTF-8' ?>" +
                         "<library>" +
                         "<book id='1'>Effective Java</book>" +
                         "<book id='2'>Java Concurrency In Practice</book>" +
                         "</library>";
    
    // Création d'une instance de parser
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
    Document document = documentBuilder.parse(new InputSource(new StringReader(xmlDocument)));
    
    // Extraction des valeurs du document XML
    NodeList nodeList = document.getElementsByTagName("book");
    for (int i = 0; i < nodeList.getLength(); i++) {
      Node node = nodeList.item(i);
      System.out.println(node.getNodeName() + ": " + node.getTextContent());
    }
  }
}

En conclusion, la manipulation de JSON et XML en Java nécessite une approche structurée. Les bibliothèques Gson et JAXP offrent des outils puissants pour parser et écrire ces formats. En suivant les étapes décrites dans cet article, vous devriez être en mesure d’extraire les valeurs de JSON et XML avec facilité.

Étapes à suivre

  1. Ajoutez la bibliothèque Gson ou JAXP à votre projet.
  2. Créez un objet JSON ou XML en utilisant les classes correspondantes.
  3. Extraisez les valeurs de l’objet JSON ou XML en utilisant les méthodes appropriées.
  4. Utilisez les bibliothèques Gson et JAXP pour parser et écrire des documents JSON et XML.

Conclusion

La manipulation de JSON et XML est un élément essentiel dans le développement d’applications web et mobiles. Les bibliothèques Gson et JAXP offrent des outils puissants pour parser et écrire ces formats. En suivant les étapes décrites dans cet article, vous devriez être en mesure de manipuler avec facilité les données JSON et XML en Java.

Sujets à explorer

  • Utilisation de la bibliothèque Jackson pour parser et écrire des documents JSON.
  • Application des techniques de parsing et d’extraction de valeurs aux scénarios réels.
  • Exploration de la bibliothèque XStream pour parser et écrire des documents XML.
Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles