Android - Moshi 中的多种响应类型

标签 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 也可以做到这一点吗?

最佳答案

是的!您可以在您的字段上使用 @Json(name="detail") 在编码和解码时为其分配一个名称。

关于Android - Moshi 中的多种响应类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59307784/

相关文章:

android - 确定用户是否选择 Facebook 作为社交分享选项

android - 我的手机(和某些应用程序)如何知道要附加到我的通讯录中的号码的国家/地区代码前缀(例如 +1、+505、+49...)

android - 使用 Android 独立工具链为 ARM 构建 SDL

java - 如何在 java 中压缩 JSON 并在 Javascript 中解压

android - 使用 Moshi 处理错误响应

java - Android 服务 android.os.BinderProxy 错误

android - 从 json 数组中过滤所需的数据

java - Pubnub 无法在 Google App Engine (GAE) 上运行

android - 发布带有Retrofit2问题的自定义对象

java - 魔石: converting JSON to Java object when the class has a List<Object> field