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

Travailler avec JSON en Kotlin : Analyse et Sérialisation pour Débutants



JSON (JavaScript Object Notation) est le format d'échange de données le plus populaire dans les applications web modernes et les API. Si vous avez commencé à apprendre Kotlin, tôt ou tard vous rencontrerez le besoin de convertir des chaînes JSON en objets de votre application (désérialisation ou analyse) et inversement (sérialisation).



Dans cet article, nous couvrirons les principales façons de travailler avec JSON en Kotlin en utilisant trois bibliothèques populaires : kotlinx.serialization, Gson, et Moshi. Vous apprendrez comment commencer rapidement à analyser JSON et à sérialiser des données sans complexité inutile.



Que sont l'analyse JSON et la sérialisation ?



Avant de passer au code, définissons les termes :



  • Sérialisation est le processus de conversion d'un objet (par exemple, une classe de données Kotlin) en une chaîne au format JSON.
  • Analyse (désérialisation) est le processus inverse : à partir d'une chaîne JSON, nous obtenons un objet d'un type spécifique.


L'interaction avec JSON en Kotlin peut être organisée de plusieurs manières. Il n'y a pas de support JSON intégré dans le langage, nous utilisons donc des bibliothèques tierces.



Bibliothèque kotlinx.serialization (Approche Recommandée)



kotlinx.serialization est la bibliothèque officielle de JetBrains qui s'intègre parfaitement avec le langage Kotlin. Elle supporte le multiplateforme (JVM, JS, Native) et fonctionne au moment de la compilation, ce qui la rend très rapide et sûre.



Installation



Ajoutez le plugin au fichier build.gradle.kts :



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

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


Exemple : Analyse JSON



Supposons que nous ayons un JSON avec des données utilisateur :



{  "name": "Ivan",  "age": 28,  "email": "ivan@example.com"}


Créons une classe de données et annotons-la avec @Serializable :



import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Json

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

fun main() { val jsonString = """ {"name": "Ivan", "age": 28, "email": "ivan@example.com"} """.trimIndent()

val user = Json.decodeFromString<User>(jsonString) println(user) // User(name=Ivan, age=28, email=ivan@example.com)}


Exemple : Sérialisation en JSON



fun main() {    val user = User(name = "Anna", age = 25, email = "anna@example.com")    val jsonString = Json.encodeToString(user)    println(jsonString)    // {"name":"Anna","age":25,"email":"anna@example.com"}}


Avantages : sécurité de type, rapidité, pas de réflexion, support des champs nullables, des valeurs par défaut et des objets imbriqués.



Bibliothèque Gson (de Google)



Gson est l'une des bibliothèques les plus anciennes et les plus populaires pour travailler avec JSON dans l'écosystème JVM. Elle est simple à utiliser mais utilise la réflexion, ce qui est légèrement plus lent que kotlinx.serialization.



Installation



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


Exemple : Analyse JSON



import com.google.gson.Gson

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

fun main() { val gson = Gson() val jsonString = """{"id": 101, "title": "Laptop", "price": 75000.0}"""

val product = gson.fromJson(jsonString, Product::class.java) println(product) // Product(id=101, title=Laptop, price=75000.0)}


Exemple : Sérialisation en JSON



fun main() {    val product = Product(id = 202, title = "Mouse", price = 2                

Blogs

Book Recommendations