Android-Moshi中的多种响应类型

时间:2019-12-12 15:19:06

标签: android json 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)也有可能吗?

1 个答案:

答案 0 :(得分:0)

是的!编码和解码时,可以在字段上使用@Json(name="detail")为其指定名称。