Bibliothèque kotlinx.serialization pour le traitement JSON en Kotlin

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

Qu'est-ce que kotlinx.serialization ?

Kotlinx.serialization est la bibliothèque officielle de Kotlin pour la sérialisation et la désérialisation des données, y compris le format JSON. Elle offre un moyen puissant et type-safe de convertir des objets Kotlin en JSON et vice versa, sans utiliser la réflexion et avec le support multiplateforme (JVM, JS, Native).

Pourquoi le traitement JSON en Kotlin est-il nécessaire ?

Dans le développement moderne avec Kotlin (Android, applications serveur avec Ktor, projets multiplateformes), travailler avec JSON est une tâche obligatoire : échange de données avec des API REST, fichiers de configuration, stockage de données. Kotlinx.serialization résout cela efficacement, en toute sécurité et avec un minimum de code boilerplate.

Installation

Pour utiliser la bibliothèque, ajoutez le plugin dans build.gradle.kts :

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

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

Pour Maven, ajoutez la dépendance et le plugin kotlin-maven-plugin avec la configuration serialization.

Fonctionnalités principales

  • @Serializable — annotation pour les classes à sérialiser.
  • Json.encodeToString() — conversion d'un objet en chaîne JSON.
  • Json.decodeFromString() — analyse d'une chaîne JSON en objet.
  • JsonObject / JsonElement — travail dynamique avec JSON sans créer de DTO.
  • @Transient, @Required, @SerialName — réglage fin des champs.
  • JsonConfiguration — paramètres de formatage (prettyPrint, ignoreUnknownKeys).

Exemple de code en Kotlin

import kotlinx.serialization.*import kotlinx.serialization.json.*

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

fun main() { val user = User("Алиса", 30) // Sérialisation val jsonString = Json.encodeToString(user) println(jsonString) // {"name":"Алиса","age":30} // Désérialisation val decodedUser = Json.decodeFromString<User>(jsonString) println(decodedUser) // User(name=Алиса, age=30) // Travail avec JSON dynamique val jsonObject = Json.parseToJsonElement("""{"city":"Москва","zip":101000}""").jsonObject println(jsonObject["city"]) // "Москва"}

Quand l'utiliser

La bibliothèque est idéale pour :

  • Les applications Android (Retrofit + kotlinx.serialization).
  • Les projets serveur avec Ktor.
  • Les applications multiplateformes (KMP).
  • Tout projet nécessitant un travail rapide et sûr avec JSON sans réflexion.

Elle surpasse Gson et Jackson en termes de performance et de sécurité des types, en particulier dans les projets Kotlin.

Recommendations