我对Android和Kotlin完全陌生,我一直在研究Android注释。我设法使用以下代码解码了JSON响应:
class ExampleModel {
@JvmField
final var id: Int = 0
lateinit var title: String
var description: String? = null
var author: Author? = null
}
@Rest(
rootUrl = "...",
converters = [MappingJackson2HttpMessageConverter::class]
)
interface ExampleClient {
@Get("/promotions")
fun getModels(): List<ExampleModel>
}
现在可以使用,但是我想问几个问题。
考虑到我通常与Swift合作,所以如果您能指出Kotlin中的“ Codable”,我将不胜感激。
欢呼声
Kotlin数据类没有默认构造函数,而这通常是json反序列化库所必需的。任何数据类都至少需要一个构造函数参数,但是您可以解决它。定义默认值,可以使用null。例如:
data class Pojo(val name: String? = null, val age: Int? = null)
这样的代码将允许使用Pojo()构造函数。它应该可以工作,但是最好使用Kotlin原生的json解串器或使用AutoValue生成数据类。
您在这里使用的杰克逊允许使用@JsonIgnoreProperties忽略字段。
[如果您正在学习Android,则不必从Android注释开始。这不是很流行或现代的解决方案。当时,我在几个项目中都使用过它,这些项目很难维护或难以引进新的开发人员。查看android体系结构组件和jetpack-Google进行了一些不错的代码实验室。同样对于JSON选择Moshi或Gson。