android - Android - Moshi 中的多种响应类型
问题描述
我可以从服务器获取以下 JSON 数据:
{
"id": 1,
"groupName": "MyBestFriends"
}
在我的 Android 项目中,我Moshi
用来处理这个响应。特别是,我将以下数据类用于该类型的响应:
@JsonClass(generateAdapter = true)
data class Group(
val id: Long,
val groupName:String
)
所以,但如果请求的组不存在,那么我还可以获得以下 JSON 响应:
{
"detail": "Not found."
}
如何,我的 Group 数据类也能处理这个?我想要的是处理两种类型的响应,但只有一个数据类?那可能吗 ?
注意:当我在早期的 Android 项目中使用 Java 和 GSON 时,我可以@SerializedName
对字段使用注释,并且 GSON 适配器中的任何 JSON 响应都将其映射到给定的类。所以,在我的情况下,它会是这样的:
public class Group {
@SerializedName("id")
private Long id;
@SerializedName("groupName")
private String groupName;
@SerializedName("detail")
private String detail;
// getter & setter
}
Moshi 也可以做到这一点吗?
解决方案
是的!在编码和解码时,您可以@Json(name="detail")
在您的字段上使用它来为其分配名称。
推荐阅读
- python - cx_Oracle:使用 Wallet 时如何连接到 Oracle?
- python - 替换数据框中的值仅与另一个数据框中匹配的值有关
- asp.net-core-3.1 - 如何获取当前服务健康检查的 URL?
- python - 使用变量而不是实际值会导致错误
- r - R for 循环问题:循环数据帧时“错误:$ 运算符对原子向量无效”
- javascript - 我应该避免在 Node js 上的每一个异步/等待中尝试捕获吗?
- artificial-intelligence - 简单策略游戏的 AI 技术
- c++ - Hackerrank-Count Triplets C++ 失败测试用例 #10 & #11
- python-3.x - (Python) 为什么运行“wut:2+2=5”行不会出现语法错误?
- android - 是否可以执行从 Anroid JNI 生成的 so 文件?