我可以从服务器获取以下 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")
在编码和解码时为其分配一个名称。
关于Android - Moshi 中的多种响应类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59307784/