使用kotlinx.serialization将json对象属性反序列化为字符串

使用kotlinx.serialization将json对象属性反序列化为字符串,json,kotlin,kotlinx.serialization,Json,Kotlin,Kotlinx.serialization,给定json,如下所示,payload对象的结构会有所不同: { "id": 1, "displayName": "Success", "payload": { "someProperty": "example", "someOtherProperty": { "som

给定json,如下所示,
payload
对象的结构会有所不同:

{
    "id": 1,
    "displayName": "Success",
    "payload": {
        "someProperty": "example",
        "someOtherProperty": {
            "someNestedProperty": "example"
        }
    }
}
…使用
kotlinx.serialization
如何将其反序列化为以下数据类,其中
payload
的值应该是payload对象的原始json字符串

@Serializable
data class Stub(
    val id: Int,
    val displayName: String,
    val payload: String
)

很难找到一种使用序列化程序实现这一点的方法,但它非常简单,可以使用
JsonElement
手动实现

val jsonObject = Json.parseToJsonElement(jsonString).jsonObject
val stub = Stub(
    jsonObject["id"]!!.jsonPrimitive.int,
    jsonObject["displayName"]!!.jsonPrimitive.content,
    jsonObject["payload"]!!.toString()
)