0

所以我目前正在尝试创建一个能够显示日历预订的 android 应用程序。当我检索预订时,我得到以下 JSON:

{
  "id": "dqflkgjkzmvjdcdfdzs56f4sd7",
  "subject": "Test Meeting",
  "start": {
    "dateTime": "2021-08-02T14:00:00.0000000",
    "timeZone": "UTC"
  },
  "end": {
    "dateTime": "2021-08-02T14:30:00.0000000",
    "timeZone": "UTC"
  },
  "organiser": "Kermit"
}

您如何将其转换为 Parcelable 类?我开始制作这样的课程:

@Parcelize
class Booking(
    val id: String,
    val subject: String,
    val start: String, /* This */
    val end: String, /* and this has to change to an object*/
    val organiser: String,
): Parcelable

现在我仍然需要找到 start 和 end 对象的类型,因为它们本身具有属性并将其定义为单独的对象似乎没有必要,但这可能是因为我习惯了 Angular 语法。

关于如何将 JSON 数据转换为 Parcelable 类的任何想法?

4

1 回答 1

0

通常,您应该使用以下方式,这将是更好的方式。

将其定义为单独的对象似乎没有必要

至少需要一个对象来处理开始和结束。

@Parcelize
data class Booking(
    @SerializedName("id")
    var id: String?,

    @SerializedName("subject")
    var subject: String?,

    @SerializedName("start")
    var start: TimeData?,

    @SerializedName("end")
    var end: TimeData?,

    @SerializedName("organiser")
    var organiser: String?
): Parcelable {

    @Parcelize
    data class TimeData(
        @SerializedName("dateTime")
        var dateTime: String?,

        @SerializedName("timeZone")
        var timeZone: String?
    ): Parcelable

}

在你的 android studio 中使用JSON to Kotlin Class插件,它将有助于data classJSON

于 2021-09-29T15:00:05.570 回答