У меня возникла проблема, когда обработчик API, который я обрабатываю, возвращает OBJECT для ARRAY размера 1.
Например, иногда API отвечает:
{
"monument": [
{
"key": 4152,
"name": "MTS - Corporate Head Office",
"categories": {},
"address": {}
},
{
"key": 4151,
"name": "Canadian Transportation Agency",
"categories": {},
"address": {}
},
{
"key": 4153,
"name": "Bank of Montreal Building",
"categories": {},
"address": {}
}
],
}
Однако, если массив monument
имеет только 1 элемент, он становится ОБЪЕКТОМ (обратите внимание на отсутствие скобок []
) так:
{
"monument": {
"key": 4152,
"name": "MTS - Corporate Head Office",
"categories": {},
"address": {}
}
}
Если я определяю свои модели следующим образом, я получаю сообщение об ошибке, когда возвращается только один элемент:
public class Locations {
public List<Monument> monument;
}
Если возвращается только один элемент, я получаю следующую ошибку:
Expected BEGIN_OBJECT but was BEGIN_ARRAY ...
И если я определяю свою модель следующим образом:
public class Locations {
public Monument monument;
}
и API возвращает ARRAY. Я получаю противоположную ошибку.
Expected BEGIN_ARRAY but was BEGIN_OBJECT ...
Я не могу определить несколько элементов с тем же именем в моей модели. Как я могу справиться с этим случаем?
Примечание. Я не могу вносить изменения в API.