我的JSON响应可能具有不同的值。
"values": [
{
"type": "AAA",
"value": 3
},
{
"type": "BBB",
"value": [
{
"ABC": 8
},
{
"DEF": 9
},
{
"GHI": 9
},
{
"JKL": 8
},
{
"MNO": 9
},
{
"PQR": 9
}
]
}
]
数据类别
data class Values(
@SerializedName("type")
@Expose
val type: String,
@SerializedName("value")
@Expose
val value: Int)
如您所见,value
可以是Int或另一个Json数组。您知道如何为此编写反序列化器吗?Android应用程序当前正在使用Int字段(类型AAA),我正在尝试集成潜在的数组值(类型BBB)。谢谢。
3条答案
按热度按时间dl5txlt91#
例如,您可以有一个包含两个子类的密封类
Value
:并编写一个自定义反序列化程序:
现在,您可以使用
@JsonAdapter
注解将此反序列化程序应用于"value"
字段,如下所示:使用
optIntValue
或optIntPairValue
访问您感兴趣的值。erhoui1w2#
请尝试使用此代码:
snz8szmq3#
首先,在您的情况下,使用手动解析而不是自动解析,因为自动解析可能会出现问题,而且在这种情况下会有点复杂。现在您需要将请求更改为“JsonObject”。
请尝试以下代码...
希望,它起作用了。:)