Я получаю доступ к API, который имеет геометрические типы объектов в JSON объекте. У меня проблема в классе Kotlin модели (ниже), у меня не может быть двух типов объектов для узла, так как я получаю сообщение об ошибке
java.lang.IllegalStateException: Expected a double but was BEGIN_ARRAY at line 12 column 16 path $.features[0].geometry.geometries[0].coordinates[0];
, потому что для каждый внутренний узел координаты каждого объекта может возвращать:
List<Double>
List<List<Double>>
API JSON
"geometries": [
{
"type": "Point",
"coordinates": [153.0533903,-26.7735391]
},
{
"type": "LineString",
"coordinates": [
[153.0258962, -27.3399828],
[153.02596, -27.34007],
[153.02602, -27.34015],
[153.026028, -27.3401745]
]
}
]
...
...
...
Ответ внешнего API передается через модели Retrofit, однако в моем классе моделей как обеспечивается обработка List<Double>
& List<List<Double>>
public class EventsGeometriesAPINodeModel {
@SerializedName("type")
@Expose
internal var type: String? = null
//how do provide both List<Double> List<List<Double>> processing
//API retruns either:
//List<Double>
//List<List<Double>>
@SerializedName("coordinates")
@Expose
internal var coordinates: List<Double>? = null
}