首页 > 解决方案 > 如何仅为我的 ViewHolder 获取 Json 的一部分?(在科特林)

问题描述

我正在使用 recyclerView 并且无法将我的 api 调用(json)的一部分放入我的 ViewHolder 中。我尝试使用 subString()、get(),但无法做到。

这是我的 viewHolder :

holder.fighterRanking.text = rankingData.competitorRankings.toString()

这是我的 Json ,注意:我已经达到了最大字符限制,所以下面的 Json 大约是全部内容的 30%,它还有几个“轻量级”、“轻量级”等对象,我想要只有我的视图持有者中每个“重量级”的“名称”和“等级”

"generated_at": "2020-05-21T10:35:49+00:00",
    "rankings": [
        {
            "type_id": 13,
            "name": "welterweight",
            "year": 2020,
            "week": 21,
            "competitor_rankings": [
                {
                    "rank": 0,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:273539",
                        "name": "Usman, Kamaru",
                        "abbreviation": "USM"
                    }
                },
                {
                    "rank": 1,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:274653",
                        "name": "Woodley, Tyron",
                        "abbreviation": "WOO"
                    }
                },
                {
                    "rank": 2,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:265079",
                        "name": "Covington, Colby",
                        "abbreviation": "COV"
                    }
                },
                {
                    "rank": 3,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:260633",
                        "name": "Masvidal, Jorge",
                        "abbreviation": "MAS"
                    }
                },
                {
                    "rank": 4,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:256121",
                        "name": "Edwards, Leon",
                        "abbreviation": "EDW"
                    }
                },
                {
                    "rank": 5,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:265063",
                        "name": "Thompson, Stephen",
                        "abbreviation": "THO"
                    }
                },
                {
                    "rank": 6,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:267851",
                        "name": "Burns, Gilbert",
                        "abbreviation": "BUR"
                    }
                },
                {
                    "rank": 7,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237670",
                        "name": "Maia, Demian",
                        "abbreviation": "MAI"
                    }
                },
                {
                    "rank": 8,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237628",
                        "name": "Chiesa, Michael",
                        "abbreviation": "CHI"
                    }
                },
                {
                    "rank": 9,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237634",
                        "name": "Dos Anjos, Rafael",
                        "abbreviation": "DOS"
                    }
                },
                {
                    "rank": 10,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237632",
                        "name": "Diaz, Nate",
                        "abbreviation": "DIA"
                    }
                },
                {
                    "rank": 11,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:413419",
                        "name": "Neal, Geoffrey",
                        "abbreviation": "NEA"
                    }
                },
                {
                    "rank": 12,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237666",
                        "name": "Lawler, Robbie",
                        "abbreviation": "LAW"
                    }
                },
                {
                    "rank": 13,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:267863",
                        "name": "Luque, Vicente",
                        "abbreviation": "LUQ"
                    }
                },
                {
                    "rank": 14,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237676",
                        "name": "McGregor, Conor",
                        "abbreviation": "MCG"
                    }
                },
                {
                    "rank": 15,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:253389",
                        "name": "Pettis, Anthony",
                        "abbreviation": "PET"
                    }
                }
            ]
        },
        {
            "type_id": 14,
            "name": "middleweight",
            "year": 2020,
            "week": 21,
            "competitor_rankings": [
                {
                    "rank": 0,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:410485",
                        "name": "Adesanya, Israel",
                        "abbreviation": "ADE"
                    }
                },
                {
                    "rank": 1,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:253377",
                        "name": "Whittaker, Robert",
                        "abbreviation": "WHI"
                    }
                },
                {
                    "rank": 2,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:320689",
                        "name": "Costa, Paulo Henrique",
                        "abbreviation": "COS"
                    }
                },
                {
                    "rank": 3,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:250133",
                        "name": "Cannonier, Jared",
                        "abbreviation": "CAN"
                    }
                },
                {
                    "rank": 4,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237704",
                        "name": "Romero, Yoel",
                        "abbreviation": "ROM"
                    }
                },
                {
                    "rank": 4,
                    "movement": 1,
                    "competitor": {
                        "id": "sr:competitor:338797",
                        "name": "Till, Darren",
                        "abbreviation": "TIL"
                    }
                },
                {
                    "rank": 6,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:278283",
                        "name": "Hermansson, Jack",
                        "abbreviation": "HER"
                    }
                },
                {
                    "rank": 7,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:268061",
                        "name": "Gastelum, Kelvin",
                        "abbreviation": "GAS"
                    }
                },
                {
                    "rank": 8,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:244098",
                        "name": "Brunson, Derek",
                        "abbreviation": "BRU"
                    }
                },
                {
                    "rank": 9,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:462119",
                        "name": "Shahbazyan, Edmen",
                        "abbreviation": "SHA"
                    }
                },
                {
                    "rank": 10,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:257353",
                        "name": "Hall, Uriah",
                        "abbreviation": "HAL"
                    }
                },
                {
                    "rank": 11,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:284469",
                        "name": "Tavares, Brad",
                        "abbreviation": "TAV"
                    }
                },
                {
                    "rank": 12,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:541995",
                        "name": "Akhmedov, Omari",
                        "abbreviation": "AKH"
                    }
                },
                {
                    "rank": 13,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:465483",
                        "name": "Heinisch, Ian",
                        "abbreviation": "HEI"
                    }
                },
                {
                    "rank": 14,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:248585",
                        "name": "Carlos Junior, Antonio",
                        "abbreviation": "CAJ"
                    }
                },
                {
                    "rank": 15,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:245465",
                        "name": "Jotko, Krzysztof",
                        "abbreviation": "JOT"
                    }
                }
            ]
        },
        {
            "type_id": 15,
            "name": "light_heavyweight",
            "year": 2020,
            "week": 21,
            "competitor_rankings": [
                {
                    "rank": 0,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:253371",
                        "name": "Jones, Jon",
                        "abbreviation": "JON"
                    }
                },
                {
                    "rank": 1,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:347406",
                        "name": "Reyes, Dominick",
                        "abbreviation": "REY"
                    }
                },
                {
                    "rank": 2,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237712",
                        "name": "Santos, Thiago",
                        "abbreviation": "SAN"
                    }
                },
                {
                    "rank": 3,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:250143",
                        "name": "Blachowicz, Jan",
                        "abbreviation": "BLA"
                    }
                },
                {
                    "rank": 4,
                    "movement": 1,
                    "competitor": {
                        "id": "sr:competitor:246017",
                        "name": "Anderson, Corey",
                        "abbreviation": "AND"
                    }
                },
                {
                    "rank": 5,
                    "movement": 3,
                    "competitor": {
                        "id": "sr:competitor:250881",
                        "name": "Teixeira, Glover",
                        "abbreviation": "TEI"
                    }
                },
                {
                    "rank": 6,
                    "movement": -2,
                    "competitor": {
                        "id": "sr:competitor:244765",
                        "name": "Smith, Anthony",
                        "abbreviation": "SMI"
                    }
                },
                {
                    "rank": 7,
                    "movement": -1,
                    "competitor": {
                        "id": "sr:competitor:542115",
                        "name": "Oezdemir, Volkan",
                        "abbreviation": "OEZ"
                    }
                },
                {
                    "rank": 8,
                    "movement": -1,
                    "competitor": {
                        "id": "sr:competitor:278293",
                        "name": "Gustafsson, Alexander",
                        "abbreviation": "GUS"
                    }
                },
                {
                    "rank": 9,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:372544",
                        "name": "Rakic, Aleksandar",
                        "abbreviation": "RAK"
                    }
                },
                {
                    "rank": 10,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:256105",
                        "name": "Krylov, Nikita",
                        "abbreviation": "KRY"
                    }
                },
                {
                    "rank": 11,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:511852",
                        "name": "Walker, Johnny",
                        "abbreviation": "WAL"
                    }
                },
                {
                    "rank": 12,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:265089",
                        "name": "Cirkunov, Misha",
                        "abbreviation": "CIR"
                    }
                },
                {
                    "rank": 13,
                    "movement": 1,
                    "competitor": {
                        "id": "sr:competitor:449135",
                        "name": "Spann, Ryan",
                        "abbreviation": "SPA"
                    }
                },
                {
                    "rank": 14,
                    "movement": -1,
                    "competitor": {
                        "id": "sr:competitor:419867",
                        "name": "Ankalaev, Magomed",
                        "abbreviation": "ANK"
                    }
                },
                {
                    "rank": 15,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:257355",
                        "name": "Rua, Mauricio",
                        "abbreviation": "RUA"
                    }
                }
            ]
        },
        {
            "type_id": 16,
            "name": "heavyweight",
            "year": 2020,
            "week": 21,
            "competitor_rankings": [
                {
                    "rank": 0,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237684",
                        "name": "Miocic, Stipe",
                        "abbreviation": "MIO"
                    }
                },
                {
                    "rank": 1,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:253373",
                        "name": "Cormier, Daniel",
                        "abbreviation": "COR"
                    }
                },
                {
                    "rank": 2,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:250145",
                        "name": "Ngannou, Francis",
                        "abbreviation": "NGA"
                    }
                },
                {
                    "rank": 3,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:542009",
                        "name": "Blaydes, Curtis",
                        "abbreviation": "BLA"
                    }
                },
                {
                    "rank": 4,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237636",
                        "name": "Dos Santos, Junior",
                        "abbreviation": "DOS"
                    }
                },
                {
                    "rank": 4,
                    "movement": 1,
                    "competitor": {
                        "id": "sr:competitor:542099",
                        "name": "Lewis, Derrick",
                        "abbreviation": "LEW"
                    }
                },
                {
                    "rank": 6,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:542143",
                        "name": "Rozenstruik, Jairzinho",
                        "abbreviation": "ROZ"
                    }
                },
                {
                    "rank": 7,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:542161",
                        "name": "Volkov, Alexander",
                        "abbreviation": "VOL"
                    }
                },
                {
                    "rank": 8,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:237694",
                        "name": "Overeem, Alistair",
                        "abbreviation": "OVE"
                    }
                },
                {
                    "rank": 9,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:254231",
                        "name": "Harris, Walt",
                        "abbreviation": "HAR"
                    }
                },
                {
                    "rank": 10,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:542117",
                        "name": "Oleinik, Aleksei",
                        "abbreviation": "OLE"
                    }
                },
                {
                    "rank": 11,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:244080",
                        "name": "Abdurakhimov, Shamil",
                        "abbreviation": "ABD"
                    }
                },
                {
                    "rank": 12,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:542079",
                        "name": "Ivanov, Blagoy",
                        "abbreviation": "IVA"
                    }
                },
                {
                    "rank": 13,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:542145",
                        "name": "Sakai, Augusto",
                        "abbreviation": "SAK"
                    }
                },
                {
                    "rank": 14,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:515358",
                        "name": "Pavlovich, Sergey",
                        "abbreviation": "PAV"
                    }
                },
                {
                    "rank": 15,
                    "movement": 0,
                    "competitor": {
                        "id": "sr:competitor:257349",
                        "name": "Werdum, Fabricio",
                        "abbreviation": "WER"
                    }
                }
            ]
        }



如果有人能指出我正确的方向或只是全力帮助我,我将不胜感激,谢谢!

标签: androidjsonkotlinandroid-viewholder

解决方案


推荐阅读