【问题标题】:Type conversion from data class to recyclerView从数据类到recyclerView的类型转换
【发布时间】:2022-01-02 07:09:59
【问题描述】:

有一个 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 类的构造函数中,有一个 special 字段,从方括号来看,它也是一个列表(其中第一个元素是 special_id,第二个是名字)。我只需要从 Response 数组的所有对象中形成这些名称的列表,并将它们提供给适配器,以便它们显示在 RecyclerView 中。我该怎么做?也许我需要使用地图功能?

【问题讨论】:

    标签: android json kotlin mvvm


    【解决方案1】:

    可以使用 flatMap 实现:

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

    【讨论】:

    • 您可以将specialty.flatMap { listOf(it.name) } 替换为specialty.map { it.name }。这可能会更有意义。
    • 是的,你是对的
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多