【发布时间】:2020-11-30 15:43:57
【问题描述】:
我们的后端每次都会发送一个 json 响应,该响应可以包含同一个键的不同值。
第一个变体示例
{
"title": "2",
"profile_image": {
"profile_image_id": "4581542",
"sized": "media/up/2020/48/460e689e286ca46b1006b62269ee21a22b6bdabf2496506e34e5d07c5d42c20f_user_photo_160674563705555.sized.JPG",
"sized_w": "556",
"sized_h": "555",
"thumb": "media/up/2020/48/460e689e286ca46b1006b62269ee21a22b6bdabf2496506e34e5d07c5d42c20f_user_photo_160674563705555.thumb.JPG",
"thumb_w": "90",
"thumb_h": "90"
},
"profile": {
"title": "2",
"first_name": "John",
"last_name": "Doe",
"user_online_status": false
}
}
下面是相同响应的另一个变体。请注意,profile_image 字段现在是 Array 类型,user_online_status 也可以是字符串或布尔值。此外,当 profile_image 为空时,它始终是一个空数组。在任何其他情况下,它都是对象。
{
"title": "2",
"profile_image": [],
"profile": {
"title": "2",
"first_name": "John",
"last_name": "Doe",
"user_online_status": "0"
}
}
如何在不创建额外模型类的情况下使用 Retrofit 和 Moshi 解析此类响应?我可以使用自定义适配器吗?可以举个例子吗?
【问题讨论】:
-
您是否尝试过要求 API 开发人员保持一致?
-
请你的上级解雇整个后端团队,从他们的领导开始。
-
爱 cmets。
-
没有时间解雇后端团队,也没有时间让他们解决我们明天要交付的问题,我快疯了。