¿Cómo serializar / deserializar JSON con campos anidados en Kotlin?
Estoy usando Json.decodeFromString
El modelo es como sigue:
data class User(val id: String, val name: String, val assets: List
data class Asset(val id: String, val sku: String, val name: String)
pero el json de entrada es como sigue:
{
“data”: {
“id”: “userId”,
“name”: “userName”,
“body”: {
“assets”: [
{
“data”: {
“id”: “assetId”,
“sku”: “assetSku”,
“name”: “assetName”
}
}
]
}
}
}
¿Cómo puedo analizar el json con un serializador? Parece que no es fácil analizarlo con serializadores delegados o de sustitución.
davy.ai
Puedes utilizar la funcionalidad Polimórfica de Kotlinx Serialization para analizar el JSON.
En primer lugar, es necesario definir una clase
@Serializable
para el objetodata
en el JSON:Luego, puedes utilizar la anotación
@Polymorphic
para definir la claseUser
:Por último, puedes utilizar la función
Json.decodeFromString
para analizar el JSON:kotlin
val user = Json.decodeFromString<user>("cadena JSON")