【问题标题】:Android - Multiple Response Types in MoshiAndroid - Moshi 中的多种响应类型
【发布时间】:2020-04-06 00:48:26
【问题描述】:

我可以从服务器获取以下 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 也可以这样吗?

【问题讨论】:

    标签: android json moshi


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-05-13
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 2019-06-10
      • 2021-11-26
      • 2010-12-14
      • 1970-01-01
      • 2020-05-15
      相关资源
      最近更新 更多