JSON-Verarbeitung in Kotlin: Bibliotheken und Codebeispiele

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

JSON-Verarbeitung in Kotlin: Bibliotheken, Werkzeuge und Codebeispiele



JSON (JavaScript Object Notation) ist eines der beliebtesten Datenformate für den Datenaustausch in der modernen Webentwicklung. Bei der Entwicklung von Anwendungen in Kotlin, sei es für Android, Backend oder Desktop, ist es fast immer erforderlich, JSON zu parsen und zu generieren. In diesem Artikel werden wir die wichtigsten Bibliotheken für die Arbeit mit JSON in Kotlin, ihre Funktionen, Vorteile und praktische Codebeispiele im Detail besprechen.



Warum ist eine separate JSON-Verarbeitung in Kotlin notwendig?



Kotlin ist eine statisch typisierte Sprache, die auf der JVM (sowie Native und JS) läuft. Im Gegensatz zu dynamischen Sprachen, in denen JSON „on the fly“ in ein Wörterbuch umgewandelt werden kann, arbeitet man in Kotlin üblicherweise mit typisierten Objekten. Dies erhöht die Zuverlässigkeit des Codes und ermöglicht der IDE, automatisch Felder vorzuschlagen. Für die Umwandlung von JSON in Kotlin-Objekte (data-Klassen) und zurück werden Serialisierungs-/Deserialisierungsbibliotheken verwendet.



Wichtige Bibliotheken für JSON in Kotlin



Wir betrachten die drei beliebtesten Bibliotheken: kotlinx.serialization (von JetBrains empfohlen), Gson (von Google) und Moshi (von Square).



1. kotlinx.serialization



Dies ist die offizielle Bibliothek für Serialisierung in Kotlin, die von JetBrains unterstützt wird. Sie arbeitet plattformübergreifend (JVM, Native, JS) und verwendet keine Reflexion, was eine hohe Leistung und Typsicherheit bietet.



Installation: Fügen Sie das Plugin und die Abhängigkeit in build.gradle.kts hinzu:



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

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


Anwendungsbeispiel:



import kotlinx.serialization.Serializableimport kotlinx.serialization.json.Jsonimport kotlinx.serialization.encodeToStringimport kotlinx.serialization.decodeFromString

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

fun main() { val json = Json { prettyPrint = true; ignoreUnknownKeys = true }

// Serialisierung (Objekt -> JSON) val user = User("Alexej", 30, "alex@example.com") val jsonString = json.encodeToString(user) println(jsonString)

// Deserialisierung (JSON -> Objekt) val input = """{"name":"Maria","age":25}""" val parsedUser = json.decodeFromString<User>(input) println(parsedUser)}


Besonderheiten:

  • Unterstützung von nullable-Feldern (wie email im Beispiel).
  • Konfiguration über DSL: prettyPrint, ignoreUnknownKeys und andere.
  • Arbeit mit enum, sealed-Klassen, verschachtelten Objekten.
  • Plattformübergreifend – ein Code für Android, iOS, Web.


2. Gson



Gson ist eine klassische Bibliothek von Google, die in der Java-Welt weit verbreitet ist. In Kotlin funktioniert sie ebenfalls, erfordert jedoch Vorsicht bei nullable-Typen und data-Klassen.



Installation:



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


Beispiel:



import com.google.gson.Gsonimport com.google.gson.GsonBuilder

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

fun main() { val gson: Gson = GsonBuilder().setPrettyPrinting().create()

// Serialisierung val product = Product(1, "Laptop", 89999.99) val json = gson.toJson(product) println(json)

// Deserialisierung val jsonString = """{"id":2,"title":"Maus","price":1500.50}""" val parsed = gson.fromJson(jsonString, Product::class.java) println(parsed)}


Wichtig: Gson verwendet Reflexion, daher kann für Kotlin data-Klassen @JvmOverloads oder eine Konfiguration von

Empfehlungen