Analyse JSON en Java : du débutant au pro en 20 minutes

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Analyse JSON en Java : du zéro au code fonctionnel

\n\n

Avez-vous déjà regardé une réponse JSON d'une API et ressenti une légère panique ? « Comment extraire le name d'ici ? Et que faire avec cet objet imbriqué ? » — des questions familières, n'est-ce pas ? Ne vous inquiétez pas, vous n'êtes pas seul. Le sujet « How to parse JSON in Java » est l'une des requêtes les plus populaires sur Stack Overflow, et aujourd'hui nous allons définitivement clore cette question.

\n\n

JSON (JavaScript Object Notation) est un format standard d'échange de données. Pratiquement tous les services modernes — de la météo aux cotations boursières — fournissent des données en JSON. Savoir l'analyser correctement est une compétence de base pour tout développeur Java. Nous n'allons pas lire de spécifications ennuyeuses. Au lieu de cela, nous allons prendre les trois bibliothèques les plus populaires : Gson (Google), Jackson (FasterXML) et la classique org.json. Vous verrez la différence d'approche et pourrez choisir votre outil.

\n\n

Qu'obtiendrez-vous après avoir lu cet article ? Vous serez capable d'analyser n'importe quel JSON — d'une simple chaîne à une structure imbriquée complexe avec des tableaux. C'est parti !

\n\n

Préparation : ce dont nous avons besoin

\n\n

Pour les exemples, nous utiliserons un simple projet Maven. Si vous n'utilisez pas Maven — pas de problème, téléchargez simplement les fichiers JAR des bibliothèques manuellement. Voici les dépendances minimales pour pom.xml :

\n\n
<!-- Gson -->\n<dependency>\n    <groupId>com.google.code.gson</groupId>\n    <artifactId>gson</artifactId>\n    <version>2.10.1</version>\n</dependency>\n\n<!-- Jackson -->\n<dependency>\n    <groupId>com.fasterxml.jackson.core</groupId>\n    <artifactId>jackson-databind</artifactId>\n    <version>2.15.2</version>\n</dependency>\n\n<!-- org.json (simple) -->\n<dependency>\n    <groupId>org.json</groupId>\n    <artifactId>json</artifactId>\n    <version>20231013</version>\n</dependency>\n
\n\n

Imaginons maintenant que nous avons reçu du serveur le JSON suivant (informations sur un utilisateur) :

\n\n
{\n  "id": 42,\n  "name": "Alice",\n  "email": "alice@example.com",\n  "isActive": true,\n  "address": {\n    "city": "Moscou",\n    "street": "Tverskaïa"\n  },\n  "hobbies": ["lecture", "programmation", "vélo"]\n}\n
\n\n

Notre objectif est de transformer cette chaîne en objets Java et d'extraire les champs nécessaires. Allons-y dans l'ordre.

\n\n

Méthode 1 : Analyse JSON en Java avec Gson (simple et élégant)

\n\n

Gson de Google est probablement la manière la plus simple d'analyser JSON en Java. Son principal avantage est le minimalisme. Vous n'avez pas besoin d'écrire beaucoup de code.

\n\n

Étape 1. Créez une classe Java (POJO) qui correspond à la structure JSON.

\n\n
public class User {\n    private int id;\n    private String name;\n    private String email;\n    private boolean isActive;\n    private Address address;\n    private List<String> hobbies;\n\n    // Getters et setters (obligatoires pour Gson !)\n    public int getId() { return id; }\n    public void setId(int id) { this.id = id; }\n\n    public String getName() { return name; }\n    public void setName(String name) { this.name = name; }\n\n    // ... autres getters/setters de la même manière\n}\n\npublic class Address {\n    private String city;\n    private String street;\n    // getters/setters\n}\n
\n\n

Étape 2. Analysez le JSON en une seule ligne.

\n\n
import com.google.gson.Gson;\n\npublic class GsonExample {\n    public static void main(String[] args) {\n        String json = "{\\"id\\":42,\\"name\\":\\"Alice\\",\\"email\\":\\"alice@example.com\\",\\"isActive\\":true,\\"address\\":{\\"city\\":\\"Moscou\\",\\"street\\":\\"Tverskaïa\\"},\\"hobbies\\":[\\"lecture\\",\\"programmation\\",\\"vélo\\"]}";\n\n        Gson gson = new Gson();\n        User user = gson.fromJson(json, User.class);\n\n        System.out.print                

Blogs

Book Recommendations