[英]Kotlinx serialization - How to write a data class for an unknown field name
I try to write a data class for the following JSON response from a public API:我尝试为来自公共 API 的以下 JSON 响应写入数据 class:
{
"error": [],
"result": {
"AAVE": {
"aclass": "currency",
"altname": "AAVE",
"decimals": 10,
"display_decimals": 5
},
"ADA": {
"aclass": "currency",
"altname": "ADA",
"decimals": 8,
"display_decimals": 6
},
"ALGO": {
"aclass": "currency",
"altname": "ALGO",
"decimals": 8,
"display_decimals": 5
},
"ANT": {
"aclass": "currency",
"altname": "ANT",
"decimals": 10,
"display_decimals": 5
}
}
}
My data class looks like:我的数据 class 看起来像:
@Serializable
data class AssetInfo (
@SerialName("error")
val error: List<String>?,
@SerialName("result")
val result: Result,
)
@Serializable
data class Result(
/*
Here is the problem, because the field "asset_name" does not exist.
*/
@SerialName("asset_name")
val asset_name: Asset,
)
@Serializable
data class Asset(
@SerialName("altname")
val altname : String,
@SerialName("aclass")
val aclass : String,
@SerialName("decimals")
val decimals : String,
@SerialName("display_decimals")
val display_decimals : String,
)
In the data class "Result" the field name, that I declared as "asset_name" is different for every entry.在数据 class“结果”中,我声明为“asset_name”的字段名称对于每个条目都不同。 How does the data class have to look like?
数据 class 的外观如何? Can someone help please?
有人可以帮忙吗?
There is no need in Result
class. Result
class 中不需要。 Your data classes should look like this:您的数据类应如下所示:
@Serializable
data class AssetInfo(
@SerialName("error")
val error: List<String>?,
@SerialName("result")
val result: Map<String, Asset>
)
@Serializable
data class Asset(
@SerialName("altname")
val altname: String,
@SerialName("aclass")
val aclass: String,
@SerialName("decimals")
val decimals: Int,
@SerialName("display_decimals")
val display_decimals: Int
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.