Travailler avec JSON en Kotlin : analyse et sérialisation pour débutants

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

Introduction : pourquoi Kotlin sait-il travailler avec JSON ?

\n\n

JSON (JavaScript Object Notation) est un format léger d'échange de données, devenu un standard pour les applications web modernes et les API. Si vous programmez en Kotlin, que ce soit pour une application Android ou un backend, tôt ou tard vous devrez analyser des réponses JSON provenant d'un serveur ou sérialiser vos propres objets pour les envoyer.

\n\n

Kotlin est un langage moderne qui fonctionne sur la JVM et est entièrement compatible avec Java. Cependant, Kotlin dispose de ses propres outils puissants pour travailler avec JSON, rendant le code plus concis et plus sûr. Dans cet article, nous aborderons les deux approches les plus populaires : l'utilisation de la bibliothèque officielle kotlinx.serialization et de la bibliothèque éprouvée Gson.

\n\n

Cet article est destiné aux débutants. Nous commencerons par une analyse simple d'une chaîne, puis nous passerons à la création de structures imbriquées complexes, et enfin nous aborderons la sérialisation — la transformation de vos objets en JSON.

\n\n

1. Préparation du projet : dépendances et imports

\n\n

Avant d'écrire du code, vous devez ajouter les bibliothèques. Nous examinerons deux options.

\n\n

1.1. Installation de kotlinx.serialization

\n\n

C'est la solution officielle de JetBrains. Ajoutez ceci au fichier build.gradle.kts :

\n\n
plugins {\n    kotlin("jvm") version "1.9.0"\n    kotlin("plugin.serialization") version "1.9.0"\n}\n\ndependencies {\n    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")\n}\n
\n\n

1.2. Installation de Gson

\n\n

Gson est une bibliothèque de Google. Elle est plus simple à configurer, mais nécessite plus de travail manuel :

\n\n
dependencies {\n    implementation("com.google.code.gson:gson:2.10.1")\n}\n
\n\n

Après la synchronisation du projet, vous pouvez écrire du code.

\n\n

2. Analyse JSON en Kotlin avec kotlinx.serialization

\n\n

Cette approche est la plus « kotlinesque ». Vous déclarez des data-classes et ajoutez l'annotation @Serializable. La bibliothèque génère elle-même le code d'analyse.

\n\n

2.1. Exemple simple : données utilisateur

\n\n

Supposons que nous ayons une chaîne JSON :

\n\n
{\n    "name": "Anna",\n    "age": 25,\n    "email": "anna@example.com"\n}\n
\n\n

Créons le modèle :

\n\n
import kotlinx.serialization.Serializable\nimport kotlinx.serialization.json.Json\n\n@Serializable\ndata class User(\n    val name: String,\n    val age: Int,\n    val email: String\n)\n\nfun main() {\n    val jsonString = """\n        {\n            "name": "Anna",\n            "age": 25,\n            "email": "anna@example.com"\n        }\n    """.trimIndent()\n\n    val user = Json.decodeFromString<User>(jsonString)\n    println("Nom : ${user.name}, Âge : ${user.age}")\n}\n
\n\n

Comme vous pouvez le voir, aucun mappage manuel — tout est automatique.

\n\n

2.2. Travailler avec des listes et des objets imbriqués

\n\n

Les API réelles renvoient souvent des tableaux. Ajoutons un champ address :

\n\n
@Serializable\ndata class Address(\n    val city: String,\n    val street: String\n)\n\n@Serializable\ndata class UserWithAddress(\n    val name: String,\n    val age: Int,\n    val address: Address\n)\n\nfun main() {\n    val jsonArray = """\n        [\n            {"name": "Ivan", "age": 30, "address": {"city": "Moscou", "street": "Tverskaïa"}},\n            {"name": "Maria", "age": 22, "address": {"city": "Saint-Pétersbourg", "street": "Nevski"}}\n        ]\n    """.trimIndent()\n\n    val users = Json.decodeFromString<List<UserWithAddress>>(jsonArray)\n    users.forEach { println("${it.name} vit à ${it.address.city}") }\n}\n
\n\n

Notez : pour travailler avec des listes, on utilise le générique List<UserWithAddress>.

\n\n

3. Analyse JSON avec Gson

\n\n

Gson est une bibliothèque Java classique. Elle fonctionne également très bien en Kotlin, mais nécessite un peu plus de code.

\n\n

3.1. Analyse de base

\n\n
import com.google.gson.Gson\n\ndata cl                

Blogs

Book Recommendations