diff options
Diffstat (limited to 'guide/example/example-json-18.kt')
-rw-r--r-- | guide/example/example-json-18.kt | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/guide/example/example-json-18.kt b/guide/example/example-json-18.kt index d3da62d3..1b655bfe 100644 --- a/guide/example/example-json-18.kt +++ b/guide/example/example-json-18.kt @@ -5,18 +5,13 @@ import kotlinx.serialization.* import kotlinx.serialization.json.* @Serializable -class Project(val name: String, val language: String) - -object ProjectSerializer : JsonTransformingSerializer<Project>(Project.serializer()) { - override fun transformSerialize(element: JsonElement): JsonElement = - // Filter out top-level key value pair with the key "language" and the value "Kotlin" - JsonObject(element.jsonObject.filterNot { - (k, v) -> k == "language" && v.jsonPrimitive.content == "Kotlin" - }) -} +data class Project(val name: String, val language: String) fun main() { - val data = Project("kotlinx.serialization", "Kotlin") - println(Json.encodeToString(data)) // using plugin-generated serializer - println(Json.encodeToString(ProjectSerializer, data)) // using custom serializer + val element = buildJsonObject { + put("name", "kotlinx.serialization") + put("language", "Kotlin") + } + val data = Json.decodeFromJsonElement<Project>(element) + println(data) } |