1 // This file was automatically generated from json.md by Knit tool. Do not edit. 2 package example.exampleJson24 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.json.* 6 7 import kotlinx.serialization.builtins.* 8 9 @Serializable 10 data class Project( 11 val name: String, 12 @Serializable(with = UserListSerializer::class) 13 val users: List<User> 14 ) 15 16 @Serializable 17 data class User(val name: String) 18 19 object UserListSerializer : JsonTransformingSerializer<List<User>>(ListSerializer(User.serializer())) { 20 transformSerializenull21 override fun transformSerialize(element: JsonElement): JsonElement { 22 require(element is JsonArray) // this serializer is used only with lists 23 return element.singleOrNull() ?: element 24 } 25 } 26 mainnull27fun main() { 28 val data = Project("kotlinx.serialization", listOf(User("kotlin"))) 29 println(Json.encodeToString(data)) 30 } 31