【问题标题】:How to parse a String to Android.Uri with Retrofit and Gson如何使用 Retrofit 和 Gson 将字符串解析为 Android.Uri
【发布时间】:2020-03-15 11:33:24
【问题描述】:

我正在制作一个 Android 应用,并且正在使用 Gson 进行改造。我请求的一种类型是来自 api 的 Photo,其中有两个 Url,都是图片的链接。

data class Photo(val id: Int, val title: String, val pictureUrl: Uri, val thumbnailUrl: Uri)

如果改造将 Json 直接解析到类,我更愿意,我正在考虑编写一个额外的 Gson 适配器。但是我无法在 Kotlin 中找到一个易于理解的示例。 还考虑过使用额外的转换器工厂???但这似乎不对。

解决这个问题的方法是什么?

【问题讨论】:

    标签: android kotlin gson retrofit uri


    【解决方案1】:

    您可以使用此代码示例:

    class UriDeserializer : JsonDeserializer<Uri> {
    
        override fun deserialize(
            json: JsonElement?,
            typeOfT: Type?,
            context: JsonDeserializationContext?
        ): Uri {
            return Uri.parse(json?.asString)
        }
    }
    

    并在创建 Gson 实例时注册这个反序列化器:

    GsonBuilder().registerTypeAdapter(Uri::class.java, UriDeserializer())
            .create()
    

    【讨论】:

      猜你喜欢
      • 2021-01-07
      • 2015-12-05
      • 2023-04-08
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多