Traitement JSON en Java : revue des bibliothèques et outils
JSON (JavaScript Object Notation) est un format léger d'échange de données largement utilisé dans les applications web modernes, les API REST, les fichiers de configuration et les bases de données. En Java, il existe plusieurs bibliothèques puissantes pour travailler avec JSON, chacune ayant ses propres caractéristiques, performances et facilité d'utilisation. Dans cet article, nous examinerons les principaux outils, leurs fonctionnalités, des exemples de code et les meilleures pratiques d'utilisation.
1. Jackson (FasterXML Jackson)
Jackson est la bibliothèque la plus populaire et la plus performante pour travailler avec JSON en Java. Elle prend en charge à la fois le traitement par flux (style SAX) et le modèle objet (style DOM). Jackson fait partie intégrante de Spring Boot et de nombreuses applications d'entreprise.
Principales fonctionnalités :
- Sérialisation/désérialisation d'objets Java en JSON et vice versa
- Traitement par flux de grands fichiers JSON (JsonParser, JsonGenerator)
- Prise en charge des annotations pour un réglage fin (@JsonProperty, @JsonIgnore, @JsonFormat)
- Travail avec l'arbre de nœuds (JsonNode)
- Prise en charge du schéma JSON et de la validation
Exemple de code : utilisation de base de Jackson
import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.JsonNode;
public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper();
// Sérialisation d'un objet en JSON Person person = new Person("Ivan", 30, "ivan@example.com"); String json = mapper.writeValueAsString(person); System.out.println(json); // {"name":"Ivan","age":30,"email":"ivan@example.com"}
// Désérialisation de JSON en objet String jsonInput = "{\\"name\\":\\"Maria\\",\\"age\\":25}"; Person deserialized = mapper.readValue(jsonInput, Person.class); System.out.println(deserialized.getName()); // Maria
// Travail avec l'arbre de nœuds JsonNode root = mapper.readTree(jsonInput); System.out.println(root.get("age").asInt()); // 25 }}
class Person { private String name; private int age; private String email;
// Constructeurs, getters, setters (obligatoires pour la désérialisation) public Person() {} public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; } // getters et setters...}2. Gson (Google Gson)
Gson est une bibliothèque de Google, connue pour sa simplicité et sa légèreté. Elle est idéale pour les projets de petite et moyenne envergure où les performances maximales ne sont pas requises. Gson utilise la réflexion pour la sérialisation/désérialisation automatique.
Caractéristiques :
- Configuration minimale — fonctionne "prêt à l'emploi"
- Prise en charge des annotations (@Expose, @SerializedName)
- Possibilité de créer des adaptateurs personnalisés (JsonSerializer, JsonDeserializer)
- Travail avec des collections, des tableaux et des objets imbriqués
Exemple de code : Gson en action
import com.google.gson.Gson;import com.google.gson.GsonBuilder;
public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder() .setPrettyPrinting() // sortie formatée .create();
// Création de JSON à partir d'un objet Product product = new Product("Ordinateur portable", 899.99, true); String json = gson.toJson(product); System.out.println(json);
// Analyse de JSON en objet String jsonInput = "{\\"name\\":\\"Souris\\",\\"price\\":25.5,\\"available\\":false}"; Product parsed = gson.fromJson(jsonInput, Product.class); System.out.println(parsed.getName()); // Souris }}
class Product { Aussi dans la bibliothèque
Configuration des applications PHP : bibliothèques et outils pour un paramétrage flexible
Travailler avec les dates en PHP : la bibliothèque Carbon
Mise en cache en PHP : Redis, Memcached et APCu — guide complet
Configuration des applications Go : la bibliothèque viper
Playwright JavaScript (Node.js) : guide complet avec exemples