gson 如何使用名称中有冒号的json元素的类数据-Kotlin

zi8p0yeb  于 2022-11-06  发布在  Kotlin
关注(0)|答案(2)|浏览(176)

我有下面的Json:

_embedded: {
  wp:featuredmedia: [
    {
      id: 9060,
      date: "2018-05-28T17:41:21",
      author: 2,
      caption: {
        rendered: ""
      },
      source_url: "h.t.t.p.s://mydomain_com/myimage.jpg",
    }
  ]
}

我正在使用httpOk和Gson进行反序列化,我有以下数据类。

data class Embedded(
    val wp:featuredmedia: List<Wpfeaturedmedia>
)

data class Wpfeaturedmedia(
    val source_url: String
)

一切都正常运行,但我的问题是在获取source_url的图像时,因为名称wp:featuredmedia有两个点(冒号)。如何使类正常运行?

更新:立即与合作

data class Embedded(
        @SerializedName("wp:featuredmedia") val wpfeaturedmedia: List<Wpfeaturedmedia>
)
mfuanj7w

mfuanj7w1#

这很简单-将字段命名为wpfeaturedmedia(不带冒号),它将被正确Map。
编辑:看来我错了-- Gson只是在反序列化过程中跳过wp:featuredmedia,除非字段wpfeaturedmedia被注解为@SerializedName("wp:featuredmedia")

x0fgdtte

x0fgdtte2#

您可以使用@JsonProperty

data class ResponseData(
   @JsonProperty("wp:featuredmedia")
   val wpfeaturedmedia: List<SubData>
) { data class SubData(...)}

相关问题