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