xref: /aosp_15_r20/external/kotlinx.serialization/guide/example/example-json-11.kt (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1 // This file was automatically generated from json.md by Knit tool. Do not edit.
2 package example.exampleJson11
3 
4 import kotlinx.serialization.*
5 import kotlinx.serialization.json.*
6 
7 @Serializable
8 @JsonClassDiscriminator("message_type")
9 sealed class Base
10 
11 @Serializable // Class discriminator is inherited from Base
12 sealed class ErrorClass: Base()
13 
14 @Serializable
15 data class Message(val message: Base, val error: ErrorClass?)
16 
17 @Serializable
18 @SerialName("my.app.BaseMessage")
19 data class BaseMessage(val message: String) : Base()
20 
21 @Serializable
22 @SerialName("my.app.GenericError")
23 data class GenericError(@SerialName("error_code") val errorCode: Int) : ErrorClass()
24 
25 
<lambda>null26 val format = Json { classDiscriminator = "#class" }
27 
mainnull28 fun main() {
29     val data = Message(BaseMessage("not found"), GenericError(404))
30     println(format.encodeToString(data))
31 }
32