从数据类到recyclerView的类型转换



有一个JSON响应:

{
"response" : [
{
"f_name"    : "иВан",
"l_name"    : "ИваноВ",
"birthday"  : "1987-03-23",
"specialty" : [{
"specialty_id" : 101,
"name"  : "Менеджер"
}]
},
{
"f_name"    : "Петр",
"l_name"    : "петроВ",
"birthday"  : null,
"specialty" : [{
"specialty_id" : 101,
"name"  : "Менеджер"
}]
}
]
}

以及模型中对应的数据类:

data class EmployeesInfo( val response: List<Response> )
data class Response(
@SerializedName("avatr_url")
val avatrUrl: String,
val birthday: String,
@SerializedName("f_name")
val fName: String,
@SerializedName("l_name")
val lName: String,
val specialty: List<Specialty>
)
data class Specialty(
val name: String,
@SerializedName("specialty_id")
val specialtyId: Int
)

那些。原来EmployeesInfo类是一个Response类型的列表。在Response类的构造函数中有一个speciality字段,从方括号来看,它也是一个列表(其中第一个元素是specialty_id,第二个元素是name(。我只需要从响应数组的所有对象中形成一个这些名称的列表,并将它们提供给适配器,以便它们显示在RecyclerView中。。我该怎么做?也许我需要使用地图功能?

可以使用flatMap:实现

response.flatMap { it -> it.specialty.map { it.name } }

最新更新