Was ist kotlinx.serialization?
Kotlinx.serialization ist die offizielle Kotlin-Bibliothek für die Serialisierung und Deserialisierung von Daten, einschließlich des JSON-Formats. Sie bietet eine leistungsstarke und typsichere Möglichkeit, Kotlin-Objekte in JSON und zurück zu konvertieren, ohne Reflexion zu verwenden, und unterstützt die Multiplattform-Entwicklung (JVM, JS, Native).
Wozu dient die JSON-Verarbeitung in Kotlin?
In der modernen Entwicklung mit Kotlin (Android, Serveranwendungen mit Ktor, Multiplattform-Projekte) ist die Arbeit mit JSON eine grundlegende Aufgabe: Datenaustausch mit REST-APIs, Konfigurationsdateien, Datenspeicherung. Kotlinx.serialization löst diese Aufgabe effizient, sicher und mit minimalem Boilerplate-Code.
Installation
Um die Bibliothek zu nutzen, fügen Sie das Plugin in build.gradle.kts hinzu:
plugins { kotlin("plugin.serialization") version "1.9.22"}
dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")}Für Maven fügen Sie die Abhängigkeit und das Plugin kotlin-maven-plugin mit der serialization-Konfiguration hinzu.
Wichtige Funktionen
- @Serializable — Annotation für Klassen, die serialisiert werden sollen.
- Json.encodeToString() — Konvertierung eines Objekts in einen JSON-String.
- Json.decodeFromString() — Parsen eines JSON-Strings in ein Objekt.
- JsonObject / JsonElement — dynamische Arbeit mit JSON ohne Erstellung von DTOs.
- @Transient, @Required, @SerialName — Feineinstellung von Feldern.
- JsonConfiguration — Formatierungseinstellungen (prettyPrint, ignoreUnknownKeys).
Kotlin-Codebeispiel
import kotlinx.serialization.*import kotlinx.serialization.json.*
@Serializabledata class User(val name: String, val age: Int)
fun main() { val user = User("Алиса", 30) // Serialisierung val jsonString = Json.encodeToString(user) println(jsonString) // {"name":"Алиса","age":30} // Deserialisierung val decodedUser = Json.decodeFromString<User>(jsonString) println(decodedUser) // User(name=Алиса, age=30) // Arbeit mit dynamischem JSON val jsonObject = Json.parseToJsonElement("""{"city":"Москва","zip":101000}""").jsonObject println(jsonObject["city"]) // "Москва"}Wann verwenden
Die Bibliothek ist ideal für:
- Android-Apps (Retrofit + kotlinx.serialization).
- Serverprojekte mit Ktor.
- Multiplattform-Anwendungen (KMP).
- Jedes Projekt, das eine schnelle und sichere JSON-Verarbeitung ohne Reflexion benötigt.
Sie übertrifft Gson und Jackson in Bezug auf Leistung und Typsicherheit, insbesondere in Kotlin-Projekten.
Auch in der Bibliothek
Helmet für JavaScript (Node.js): Vollständige Anleitung mit Beispielen
Arbeiten mit ZIP/Archiven in C++: Bibliotheken und Codebeispiele