Kotlin:
Travailler avec JSON
Comment faire :
Kotlin n’inclut pas de support intégré pour JSON mais tire parti des fonctionnalités puissantes de bibliothèques tierces telles que Gson
de Google et Kotlinx.serialization
de JetBrains. Voici comment vous pouvez utiliser les deux pour travailler avec JSON.
Utiliser Gson
Ajoutez la dépendance Gson à votre fichier build.gradle
:
implementation 'com.google.code.gson:gson:2.8.9'
Analyser une chaîne JSON en un objet et vice-versa :
import com.google.gson.Gson
// Définir une classe de données
data class User(val name: String, val age: Int)
fun main() {
val gson = Gson()
// Sérialiser
val json = gson.toJson(User("John Doe", 30))
println(json) // Sortie : {"name":"John Doe","age":30}
// Désérialiser
val user: User = gson.fromJson(json, User::class.java)
println(user) // Sortie : User(name=John Doe, age=30)
}
Utiliser Kotlinx.serialization
D’abord, incluez la dépendance dans votre build.gradle
:
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3"
Ensuite, appliquez le plugin kotlinx-serialization
en haut de votre script de build :
plugins {
kotlin("jvm") version "1.6.10"
kotlin("plugin.serialization") version "1.6.10"
}
Sérialiser et désérialiser avec Kotlinx.serialization :
import kotlinx.serialization.*
import kotlinx.serialization.json.*
// Définir une classe de données sérialisable
@Serializable
data class User(val name: String, val age: Int)
fun main() {
// Sérialiser
val json = Json.encodeToString(User("Jane Doe", 28))
println(json) // Sortie : {"name":"Jane Doe","age":28}
// Désérialiser
val user = Json.decodeFromString<User>(json)
println(user) // Sortie : User(name=Jane Doe, age=28)
}
Gson et Kotlinx.serialization simplifient le travail avec JSON dans les applications Kotlin, choisir l’un ou l’autre dépend de vos besoins spécifiques de projet et de vos préférences personnelles.