Как написать класс данных kotlin для соответствия json? - PullRequest
0 голосов
/ 21 сентября 2018

Я использую Retrofit для вызова API и использую converter-gson для преобразования ответа json в kotlin

Это ответ

{
    "id": "1",
    "rank": "1",
    "name": "Challenge",
    "status": "E",
    "createDate": "2018-09-17 15:01:28",
    "lastModDate": "2018-09-17 15:06:32",
    "category": "DINING",
    "photo": {
        "path": "http://example.com/xxx.jpg",
        "size": [
            400,
            267
        ]
    }
}

И это класс данных.

data class ServiceList (val id:Int,
                        val rank:Int,
                        val name:String,
                        val status:String,
                        val lastModDate:String,
                        val category:String,
                        ???????)

Как пройти этот урок?

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете объявить другое data class для описания свойства photo следующим образом:

data class ServiceList(val id: Int,
                       val rank: Int,
                       val name: String,
                       val status: String,
                       val lastModDate: String,
                       val category: String,
                       val photo: Photo) {
    data class Photo(val size: List<Int>, val path: String)
}

Если Photo также будет использоваться в других контекстах, вы можете вытащить его, чтобыкласс высшего уровня:

data class ServiceList (val id: Int,
                        val rank: Int,
                        val name: String,
                        val status: String,
                        val lastModDate: String,
                        val category: String,
                        val photo: ServiceListPhoto)

data class ServiceListPhoto(val size: List<Int>, val path: String)
...