Introduction à l'utilisation du JSON en Java
JSON (JavaScript Object Notation) est un format léger d'échange de données largement utilisé dans les applications web modernes, les API et les microservices. Malgré son nom, JSON n'est pas lié à JavaScript et est bien pris en charge en Java. Dans cet article, nous allons examiner en détail comment effectuer l'analyse, la sérialisation et la désérialisation du JSON en Java en utilisant les bibliothèques populaires : Jackson et Gson.
La capacité à travailler avec JSON est une compétence obligatoire pour un développeur Java. Qu'il s'agisse de lire des fichiers de configuration, d'interagir avec des API REST ou de transférer des données entre microservices — JSON se rencontre partout. Nous examinerons les deux approches afin que vous puissiez choisir la plus adaptée à votre projet.
Principales bibliothèques pour travailler avec JSON en Java
Dans l'écosystème Java, il existe plusieurs bibliothèques populaires pour travailler avec JSON. Deux d'entre elles sont la norme de facto :
- Jackson — la bibliothèque la plus populaire, incluse dans Spring Boot. Elle offre des performances élevées et des options de personnalisation étendues.
- Gson — une bibliothèque de Google, simple à utiliser et légère. Elle est idéale pour les petits projets.
Les deux bibliothèques prennent en charge le cycle complet de travail avec JSON : sérialisation (objet → JSON), désérialisation (JSON → objet) et traitement en flux.
Ajout des dépendances
Pour travailler avec les bibliothèques, vous devez les ajouter à votre projet. Si vous utilisez Maven, ajoutez les dépendances suivantes à pom.xml :
<!-- Jackson --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version></dependency>
<!-- Gson --><dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.10.1</version></dependency>Pour Gradle, ajoutez les lignes à build.gradle :
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'implementation 'com.google.code.gson:gson:2.10.1'Sérialisation d'objets Java en JSON
La sérialisation est le processus de conversion d'un objet Java en une chaîne JSON. Examinons les deux approches.
Sérialisation avec Jackson
Jackson utilise la classe ObjectMapper pour la sérialisation. Exemple :
import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.core.JsonProcessingException;
public class JacksonSerialization { public static void main(String[] args) throws JsonProcessingException { // Create an object for serialization User user = new User("Ivan", "ivan@example.com", 25); // Create ObjectMapper ObjectMapper mapper = new ObjectMapper(); // Serialize to JSON String json = mapper.writeValueAsString(user); System.out.println(json); // Output: {"name":"Ivan","email":"ivan@example.com","age":25} }}
class User { private String name; private String email; private int age; // Constructor, getters and setters public User(String name, String email, int age) { this.name = name; this.email = email; this.age = age; } public String getName() { return name; } public String getEmail() { return email; } public int getAge() { return age; }}Sérialisation avec Gson
Gson utilise la classe Gson avec la méthode toJson() :
import com.google.gson.Gson;
public class GsonSerialization { public static void main(String[] args) { User user = new User("Maria", "maria@example.com", 30); Gson gson = n