Arbeiten mit JSON in Kotlin: Parsing und Serialisierung für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeiten mit JSON in Kotlin: Parsing und Serialisierung für Anfänger



JSON (JavaScript Object Notation) ist das beliebteste Datenaustauschformat in modernen Webanwendungen und APIs. Wenn Sie mit dem Lernen von Kotlin begonnen haben, werden Sie früher oder später auf die Notwendigkeit stoßen, JSON-Strings in Objekte Ihrer Anwendung zu konvertieren (Deserialisierung oder Parsing) und umgekehrt (Serialisierung).



In diesem Artikel werden wir die grundlegenden Methoden der Arbeit mit JSON in Kotlin anhand von drei beliebten Bibliotheken untersuchen: kotlinx.serialization, Gson und Moshi. Sie erfahren, wie Sie schnell mit dem Parsen von JSON und dem Serialisieren von Daten beginnen können, ohne unnötige Komplexität.



Was ist JSON-Parsing und -Serialisierung?



Bevor wir zum Code übergehen, definieren wir die Begriffe:



  • Serialisierung — ist der Prozess der Umwandlung eines Objekts (z. B. einer Kotlin-Datenklasse) in einen JSON-String.
  • Parsing (Deserialisierung) — ist der umgekehrte Prozess: Aus einem JSON-String erhalten wir ein Objekt eines bestimmten Typs.


Die Interaktion mit JSON in Kotlin kann auf verschiedene Weise organisiert werden. Es gibt keine integrierte JSON-Unterstützung in der Sprache, daher verwenden wir externe Bibliotheken.



Die Bibliothek kotlinx.serialization (empfohlene Methode)



kotlinx.serialization ist die offizielle Bibliothek von JetBrains, die sich perfekt in die Sprache Kotlin integriert. Sie unterstützt Multiplattform (JVM, JS, Native) und arbeitet zur Kompilierungszeit, was sie sehr schnell und sicher macht.



Installation



Fügen Sie das Plugin in die Datei build.gradle.kts ein:



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

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


Beispiel: JSON parsen



Angenommen, wir haben einen JSON mit Benutzerdaten:



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


Erstellen wir eine data class und markieren sie mit der Annotation @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)}


Beispiel: Serialisierung in 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"}}


Vorteile: Typsicherheit, Geschwindigkeit, keine Reflexion, Unterstützung für nullable-Felder, Standardwerte und verschachtelte Objekte.



Die Bibliothek Gson (von Google)



Gson ist eine der ältesten und beliebtesten Bibliotheken für die Arbeit mit JSON im JVM-Ökosystem. Sie ist einfach zu bedienen, verwendet aber Reflexion, was etwas langsamer ist als kotlinx.serialization.



Installation



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


Beispiel: JSON parsen



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)}


Beispiel: Serialisierung in JSON



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

Blogs

Buchempfehlungen