Я использую Retrofit
и Gson
для связи с сервером и анализа ответов.
Я получаю список объектов geometry с сервера. Но поле координат объекта может отличаться. Например, я получаю от сервера следующее json:
{
"geometry":{
"type":"Point",
"coordinates": [
76.95210456848145,
43.2790799527603
]
}
}
Иногда этот объект возвращает мне в следующем формате:
{
"geometry":{
"type":"Polygon",
"coordinates":[
[
[76.9478130340576,43.286265501840916],
[76.9482421875,43.276267985142056],
[76.95098876953125,43.27101863123778]
]
]
}
}
Как видите, иногда coordinates
поле - это просто список (в первом примере). Иногда это поле представляет собой трехуровневый глубокий список (во втором примере).
В результате этого я не могу правильно проанализировать список, поскольку формат элементов в списке отличается.
Как я могу правильно разобрать это?
В настоящее время я использую этот класс данных:
data class Geometry(
@SerializedName("coordinates")
val coordinates: List<List<List<Double>>>,
@SerializedName("type")
val type: String)