xref: /aosp_15_r20/external/kotlinx.serialization/guide/example/example-json-25.kt (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)

<lambda>null1 // This file was automatically generated from json.md by Knit tool. Do not edit.
2 package example.exampleJson25
3 
4 import kotlinx.serialization.*
5 import kotlinx.serialization.json.*
6 
7 @Serializable
8 class Project(val name: String, val language: String)
9 
10 object ProjectSerializer : JsonTransformingSerializer<Project>(Project.serializer()) {
11     override fun transformSerialize(element: JsonElement): JsonElement =
12         // Filter out top-level key value pair with the key "language" and the value "Kotlin"
13         JsonObject(element.jsonObject.filterNot {
14             (k, v) -> k == "language" && v.jsonPrimitive.content == "Kotlin"
15         })
16 }
17 
mainnull18 fun main() {
19     val data = Project("kotlinx.serialization", "Kotlin")
20     println(Json.encodeToString(data)) // using plugin-generated serializer
21     println(Json.encodeToString(ProjectSerializer, data)) // using custom serializer
22 }
23