// build.gradle.kts:
// plugins { kotlin("plugin.serialization") version "1.9.+" }
// implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.+")
import kotlinx.serialization.*
import kotlinx.serialization.json.*
@Serializable
data class User(val id: Int, val name: String, val email: String)
val json = Json {
prettyPrint = true
ignoreUnknownKeys = true // tolerate extra fields from server
encodeDefaults = true
}
fun main() {
val user = User(42, "Alice", "a@x.com")
val text: String = json.encodeToString(user)
println(text)
// {
// "id": 42,
// "name": "Alice",
// "email": "a@x.com"
// }
val parsed: User = json.decodeFromString(text)
println(parsed)
// List<T> too
val users = listOf(User(1, "A", "a@x"), User(2, "B", "b@x"))
val arrayText = json.encodeToString(users)
val back: List<User> = json.decodeFromString(arrayText)
}
Create a free account and build your private vault. Share publicly whenever you want.