Traitement JSON en Kotlin : bibliothèques et exemples de code

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

Traitement JSON en Kotlin : bibliothèques, outils et exemples de code



JSON (JavaScript Object Notation) est l'un des formats d'échange de données les plus populaires dans le développement web moderne. Lors de la création d'applications en Kotlin, que ce soit pour Android, le backend ou le desktop, il est presque toujours nécessaire d'analyser et de générer du JSON. Dans cet article, nous allons détailler les principales bibliothèques pour travailler avec JSON en Kotlin, leurs fonctionnalités, leurs avantages et fournir des exemples pratiques de code.



Pourquoi un traitement JSON spécifique en Kotlin ?



Kotlin est un langage typé statiquement qui fonctionne sur JVM (ainsi que Native et JS). Contrairement aux langages dynamiques où JSON peut être converti en dictionnaire « à la volée », en Kotlin, on travaille généralement avec des objets typés. Cela améliore la fiabilité du code et permet à l'IDE de suggérer automatiquement les champs. Pour convertir JSON en objets Kotlin (data-classes) et vice versa, on utilise des bibliothèques de sérialisation/désérialisation.



Principales bibliothèques JSON pour Kotlin



Examinons les trois bibliothèques les plus populaires : kotlinx.serialization (recommandée par JetBrains), Gson (de Google) et Moshi (de Square).



1. kotlinx.serialization



C'est la bibliothèque officielle de sérialisation pour Kotlin, maintenue par JetBrains. Elle fonctionne de manière multiplateforme (JVM, Native, JS) et n'utilise pas la réflexion, ce qui offre des performances élevées et une sécurité des types.



Installation : ajoutez le plugin et la dépendance dans build.gradle.kts :



plugins {    kotlin("plugin.serialization") version "1.9.22"}

dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2")}


Exemple d'utilisation :



import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Jsonimport kotlinx.serialization.encodeToStringimport kotlinx.serialization.decodeFromString

@Serializabledata class User(val name: String, val age: Int, val email: String? = null)

fun main() { val json = Json { prettyPrint = true; ignoreUnknownKeys = true }

// Sérialisation (objet -> JSON) val user = User("Alexeï", 30, "alex@example.com") val jsonString = json.encodeToString(user) println(jsonString)

// Désérialisation (JSON -> objet) val input = """{"name":"Maria","age":25}""" val parsedUser = json.decodeFromString<User>(input) println(parsedUser)}


Caractéristiques :

  • Prise en charge des champs nullable (comme email dans l'exemple).
  • Configuration via DSL : prettyPrint, ignoreUnknownKeys et autres.
  • Travail avec les enum, les sealed-classes, les objets imbriqués.
  • Multiplateforme — un seul code pour Android, iOS, le web.


2. Gson



Gson est une bibliothèque classique de Google, largement utilisée dans le monde Java. Elle fonctionne également en Kotlin, mais nécessite des précautions avec les types nullable et les data-classes.



Installation :



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


Exemple :



import com.google.gson.Gsonimport com.google.gson.GsonBuilder

data class Product(val id: Int, val title: String, val price: Double)

fun main() { val gson: Gson = GsonBuilder().setPrettyPrinting().create()

// Sérialisation val product = Product(1, "Ordinateur portable", 89999.99) val json = gson.toJson(product) println(json)

// Désérialisation val jsonString = """{"id":2,"title":"Souris","price":1500.50}""" val parsed = gson.fromJson(jsonString, Product::class.java) println(parsed)}


Important : Gson utilise la réflexion, donc pour les data-classes Kotlin, il peut être nécessaire d'utiliser @JvmOverloads ou de configurer

Recommendations