【发布时间】:2020-08-13 07:59:19
【问题描述】:
我从 API 获得了一个整数列表(实际上是枚举)。当我尝试解析它时,我得到:Unable to create converter for java.util.List<MyEnum>
我的适配器目前看起来像这样:
@Retention(AnnotationRetention.RUNTIME)
@JsonQualifier
annotation class MyEnumListAnnotation
class MyEnumListAdapter {
@ToJson
fun toJson(@MyEnumListAnnotation myEnumList: List<MyEnum>): List<Int> {
return myEnumList.map { it.type }
}
@FromJson
@MyEnumListAnnotation
fun fromJson(typeList: List<Int>): List<MyEnum> {
return typeList.map { MyEnum.from(it) }
}
}
我正在像这样将它添加到网络客户端:
Moshi.Builder()
.add([A lot of other adapters])
.add(MyEnumListAdapter())
我正在使用这样的注释(在我要解析的对象中):
data class InfoObject(
val id: String,
val name: String,
val email: String,
val phone: String,
@MyEnumListAnnotation
val myEnums: List<MyEnum>
)
如何编写我的适配器以使其正常工作?感谢所有帮助。 :)
【问题讨论】:
标签: json parsing kotlin enums moshi