如何从 API 的模型响应中应用 "Any" 类型的 TypeConverter?

How to apply TypeConverter of type "Any" from Model Response from API?

我正在使用 https://www.themealdb.com/api.php 作为我的 API。 现在,当我尝试从 JSON 生成 class 时,某些字段的类型为“Any”。 我如何为此应用 TypeConverter?

这是膳食的生成数据class:

@Entity(
    tableName = "meals"
)
data class Meal(
    @PrimaryKey(autoGenerate = true)
    val id : Int? = null,

    val dateModified: Any,
    val idMeal: String,
    val strArea: String,
    val strCategory: String,
    val strCreativeCommonsConfirmed: Any,
    val strDrinkAlternate: Any,
    val strImageSource: Any,
    val strIngredient1: String,
    val strIngredient10: String,
    val strIngredient11: String,
    val strIngredient12: String,
    val strIngredient13: String,
    val strIngredient14: String,
    val strIngredient15: String,
    val strIngredient16: String,
    val strIngredient17: String,
    val strIngredient18: String,
    val strIngredient19: String,
    val strIngredient2: String,
    val strIngredient20: String,
    val strIngredient3: String,
    val strIngredient4: String,
    val strIngredient5: String,
    val strIngredient6: String,
    val strIngredient7: String,
    val strIngredient8: String,
    val strIngredient9: String,
    val strInstructions: String,
    val strMeal: String,
    val strMealThumb: String,
    val strMeasure1: String,
    val strMeasure10: String,
    val strMeasure11: String,
    val strMeasure12: String,
    val strMeasure13: String,
    val strMeasure14: String,
    val strMeasure15: String,
    val strMeasure16: String,
    val strMeasure17: String,
    val strMeasure18: String,
    val strMeasure19: String,
    val strMeasure2: String,
    val strMeasure20: String,
    val strMeasure3: String,
    val strMeasure4: String,
    val strMeasure5: String,
    val strMeasure6: String,
    val strMeasure7: String,
    val strMeasure8: String,
    val strMeasure9: String,
    val strSource: String,
    val strTags: Any,
    val strYoutube: String
)

与其他 API 不同,示例 (NewsAPI) 它生成了自定义 class 类型的 Source,然后从那里,我可以轻松提供一个转换器。

Anykotlin 中的超级 class,这意味着 kotlin 中的每个 class 都有 Any 作为父 class

open class Any (Common source) (Native source)

The root of the Kotlin class hierarchy. Every Kotlin class has Any as a superclass. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/

如果你熟悉Java,那么Java中的Object几乎是一样的。

通常,自动生成器将类型标记为 Kotlin 中的 AnyJava 中的 Object,用于他们在确定类型时遇到问题的字段。您可以自己替换这些字段

例如

val strImageSource: Any => val strImageSource: String 

如果您仍然需要一个转换器,假设您收到的日期字段为“24/01/2001”,但想将其保存为长,您必须根据规范编写转换器您的网络图书馆。如果您使用 Retrofit(一种流行的 network/HTTP 客户端),here is a documentation 以及有关自定义转换器的详细信息