Typ konverze z údajů třídy, do recyclerView

0

Otázka

Tam je JSON odpověď:

{
    "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"  : "Менеджер"
            }]
       }
    ]
}

a odpovídající třídy dat v modelu:

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
)

Ty. ukázalo se, že EmployeesInfo třídy je seznam typ Reakce.A v konstruktoru třídy Reakce je speciální pole, které, soudě podle hranatých závorkách, je také (v seznamu je 1. prvek je specialty_id, 2. je jméno). A já prostě muset vytvořit seznam těchto jmen ze všech objektů, Reakce, pole a dát jim k adaptéru tak, že jsou zobrazeny v RecyclerView ..Jak to mohu udělat? Možná budu muset použít mapy funkce ?

android json kotlin mvvm
2021-11-23 19:36:40
1

Nejlepší odpověď

2

To může být dosaženo pomocí flatMap:

 response.flatMap { it -> it.specialty.map { it.name } }
2021-11-24 10:19:34

Můžete nahradit specialty.flatMap { listOf(it.name) } s specialty.map { it.name }. To bude asi větší smysl.
Arpit Shukla

Ano máš pravdu
Mahmoud Afarideh

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................