Traitement JSON en Java : bibliothèques Jackson et Gson
JSON (JavaScript Object Notation) est un format léger d'échange de données, largement utilisé dans le développement web, les API et les microservices. En Java, il existe plusieurs bibliothèques puissantes pour travailler avec JSON, parmi lesquelles les plus populaires sont Jackson et Gson. Dans cet article, nous examinerons en détail les deux bibliothèques, leurs fonctionnalités, des exemples d'utilisation et leurs particularités.
1. Bibliothèque Jackson
Jackson est une bibliothèque haute performance pour le traitement JSON en Java, développée par FasterXML. Elle fournit un ensemble complet d'outils pour la sérialisation, la désérialisation, l'analyse syntaxique et la transformation de données. Jackson est la norme de facto dans l'écosystème Spring.
Principales fonctionnalités de Jackson :
- ObjectMapper — la classe principale pour convertir des objets Java en JSON et vice versa.
- Annotations — configuration flexible de la sérialisation à l'aide d'annotations (
@JsonProperty,@JsonIgnore,@JsonFormat). - Prise en charge de Stream API — lecture et écriture de flux JSON.
- Sérialisation personnalisée — possibilité de créer ses propres sérialiseurs et désérialiseurs.
Exemple d'utilisation de Jackson :
import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;
public class JacksonExample { public static void main(String[] args) throws Exception { // Création de l'objet de mappage ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT);
// Exemple de classe Person person = new Person("Иван", 30, "ivan@example.com");
// Sérialisation en JSON String jsonString = mapper.writeValueAsString(person); System.out.println("JSON : " + jsonString);
// Désérialisation depuis JSON String jsonInput = "{\\"name\\":\\"Мария\\",\\"age\\":25,\\"email\\":\\"maria@example.com\\"}"; Person deserializedPerson = mapper.readValue(jsonInput, Person.class); System.out.println("Objet : " + deserializedPerson.getName()); }}
class Person { private String name; private int age; private String email;
public Person() {} // constructeur obligatoire
public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; }
// getters et setters public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}Ajout de Jackson (Maven) :
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version></dependency>2. Bibliothèque Gson
Gson est une bibliothèque de Google pour la sérialisation et la désérialisation d'objets Java en JSON et vice versa. Elle se distingue par sa simplicité d'utilisation et sa légèreté. Gson est souvent choisi pour les petits projets et le développement mobile sur Android.
Principales fonctionnalités de Gson :
- GsonBuilder — configuration du comportement de sérialisation.
- Annotations — prise en charge de
@SerializedNamepour renommer les champs. - Prise en charge des tableaux JSON — travail avec les collections.
- Gestion des valeurs nulles — option d'inclusion/exclusion des valeurs nulles.
Exemple d'utilisation de Gson :
import com.google.gson.Gson;import com.google.gson.GsonB Aussi dans la bibliothèque
Mise en cache en Go (Golang) : Redis, mise en cache groupée et en mémoire
Planificateur de tâches en TypeScript : guide détaillé de la bibliothèque node-schedule
Autorisation et authentification en Go : packages et exemples pratiques
Bibliothèque GraphQL en C++ : implémentation d'API avec graphql-cpp