Analyse de JSON dans Kotlin
La manipulation et l'analyse de JSON sont une tâche cruciale dans de nombreuses applications Kotlin. Pour traiter efficacement les chaînes JSON, il est essentiel de comprendre les techniques appropriées disponibles dans l'écosystème Kotlin.
Manipulation JSON native
Les capacités de gestion JSON natives de Kotlin constituent une approche minimaliste qui élimine le besoin de dépendances externes. Considérez la solution suivante pour analyser une chaîne JSON en un objet :
import org.json.JSONObject val jsonString = "{ \"name\": \"John Doe\", \"age\": 30 }" val json = JSONObject(jsonString) val name = json.getString("name") val age = json.getInt("age")
Sérialisation KotlinX
La sérialisation KotlinX est une bibliothèque d'analyse JSON complète qui offre une sérialisation de haut niveau. et des capacités de désérialisation. Pour l'utiliser :
Ajoutez la dépendance suivante au build.gradle de votre projet :
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.0"
Définissez vos classes de données avec les annotations @Seriallessly :
@Serializable data class Person(val name: String, val age: Int)
Analyser les chaînes JSON à l'aide du Json object :
val jsonString = "{ \"name\": \"Jane Doe\", \"age\": 35 }" val person = Json.decodeFromString(Person.serializer(), jsonString)
Adressage des objets imbriqués
Le StdDeserializer de Jackson permet de désérialiser des objets avec des propriétés imbriquées, mais y accéder dans un autre désérialiseur peut être difficile . KotlinX Serialization offre une solution grâce à son mécanisme de désérialisation personnalisé. Voici un exemple :
import kotlinx.serialization.json.JsonObject import kotlinx.serialization.json.JsonTreeParser import kotlinx.serialization.KSerializer class NestedObjectDeserializer : KSerializer<MyObject> { override fun serialize(output: Encoder, value: MyObject) = error("not implemented") override fun deserialize(input: Decoder): MyObject { val parser = JsonTreeParser(input) val jsonObject = parser.parse(JsonObject::class) val key = jsonObject["key"] as JsonObject return MyObject(key["innerValue"] as JsonPrimitive) } }
Conclusion
Que vous préfériez la gestion JSON native ou la sérialisation KotlinX, ces solutions fournissent des moyens efficaces d'analyser les chaînes JSON dans Kotlin. La manipulation JSON native est une option plus simple, tandis que la sérialisation KotlinX offre des fonctionnalités avancées pour les tâches complexes de sérialisation et de désérialisation.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!