Как разобрать первое свойство в списке JSON объектов с помощью Kotlin сериализации? - PullRequest
0 голосов
/ 12 июля 2020

Я использую Kotlin Сериализацию для анализа данных JSON. Я просто хочу проанализировать первый тип (например, траву) для моего класса данных. Как мне это сделать?

@Serializable
data class PokemonResponse(
    val id: Int,
    val name: String,
    val type: String,
    val weight: Double,
    val height: Double
)

JSON

{
"height": 7,
"id": 1,
"name": "bulbasaur",
"types": [
    {
        "slot": 1,
        "type": {
            "name": "grass",
            "url": "https://pokeapi.co/api/v2/type/12/"
        }
    },
    {
        "slot": 2,
        "type": {
            "name": "poison",
            "url": "https://pokeapi.co/api/v2/type/4/"
        }
    }
],
"weight": 69
}

1 Ответ

0 голосов
/ 12 июля 2020

Правильное представление этого JSON следующее:

@Serializable
data class PokemonResponse(
    val id: Int,
    val name: String,
    val types: List<TypeSlot>,
    val weight: Double,
    val height: Double
)
@Serializable
data class TypeSlot(
    val slot: Integer,
    val type: Type,
)
@Serializable
data class Type(
    val name: String,
    val url: String,
)

Чтобы проанализировать первый тип, который вы видите, вы должны получить к нему доступ следующим образом: pokemonResponse.types[0].type.name с учетом этого pokemonResponse относится к типу PokemonResponse. Поймай всех!

...