Как правильно проанализировать вложенный объект JSON с помощью Retrofit 2.0 (Kotlin)? - PullRequest
0 голосов
/ 08 марта 2019

Следующий объект JSON - это то, что я получаю с сервера (запрос на получение). Мне нужно получить значения координат (широта, долгота)

{
    "loc": {
        "type": "Point",
        "coordinates": [
            -47.0487786,
            -22.9001656
        ]
    },
    "city": "New Jersey",
    "name": "John Doe",
    "_id": "5c7958b3e3234b3472d9917d"
}

Я пытаюсь сделать это, используя следующее Poko (Kotlin):

package com.zowye.API.Models

import com.google.gson.annotations.SerializedName


class Salao
    (
    @SerializedName("loc") var coordinate:  , // not sure about the type
    var city: String?,
    var name: String?
)

Как я могу разобрать это? Спасибо.

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Вы должны создать класс данных для "loc"

data class Salao(
        @SerializedName("loc")
        val location : Location,
        val city : String,
        val name : String,
        @SerializedName("_id")
        val id : String
    )

data class Location (
        val type : String,
        val coordinates : Array<Float>
    )
1 голос
/ 08 марта 2019

Добавьте еще один класс Location, представляющий тип тестируемого объекта.

    package com.zowye.API.Models

    import com.google.gson.annotations.SerializedName


    class Location (
        var type: String?,
        var coordinates: Float[]?
    )

    class Salao
        (
        @SerializedName("loc") var coordinate: Location,
        var city: String?,
        var name: String?
    )
...