Всем привет. Я собрал модель ModelConfig. По Json. Параметр langs имеет массив из 2 объектов, мне приходит 2 запрос с langs у которого пустой массив. В итоге я получаю ошибку. Сервер сам решает когда присылать пустой массив, а когда заполенный. В любом случае ему должно быть все равно что за массив приходит. Но в итоге я получаю ошибку
Error
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line column path $.response.design.langs
Моя модель.
public class ModelConfig {
@SerializedName("code") public int code;
@SerializedName("status") public String status;
@SerializedName("response") public ResponseBean response;
public static class ResponseBean {
@SerializedName("portal_code") public String portalCode;
@SerializedName("design") public DesignBean design;
@SerializedName("portal_id") public String portalId;
@SerializedName("appColorScheme") public AppColorSchemeBean appColorScheme;
public static class DesignBean {
@SerializedName("logo") public String logo;
@SerializedName("langs") public List<String> langs;
}
public static class AppColorSchemeBean {
@SerializedName("slide_menu") public String slideMenu;
@SerializedName("slide_menu_color") public String slideMenuColor;
@SerializedName("app_buttons") public String appButtons;
@SerializedName("app_buttons_color") public String appButtonsColor;
}
}
}
вот так выглядит текущий Json.
**Если приходит такой Json ошибок НЕТ.
{
"code": 200,
"status": "OK",
"response": {
"design": {
"logo": "logo-en.png",
"favicon": "favicon.ico",
"langs": {
"logo-en": "logo-en.png",
"logo-ar": "logo-ar.png"
}
},
"appColorScheme": {
"slide_menu": "#f3f4f3",
"slide_menu_color": "#454545",
"app_buttons": "#280091",
"app_buttons_color": "#ffffff"
}
}
}
**ЕСЛИ ПРИХОДИТ ТАКОЙ JSON Без langs то я получаю ошибку
{
"code": 200,
"status": "OK",
"response": {
"design": {
"logo": "logo-en.png",
"favicon": "favicon.ico",
"langs": { }
},
"appColorScheme": {
"slide_menu": "#f3f4f3",
"slide_menu_color": "#454545",
"app_buttons": "#280091",
"app_buttons_color": "#ffffff"
}
}
}
Код который использую из этой модели
Constants.BACKGROUND_NAVIGATION_MENU_COLOR = modelConfig.response.appColorScheme.slideMenu;
Constants.BACKGROUND_BUTTON_EDIT_COLOR = modelConfig.response.appColorScheme.appButtons;
Constants.TEXT_NAVIGATION_MENU_COLOR = modelConfig.response.appColorScheme.slideMenuColor;
Constants.TEXT_BUTTON_EDIT_COLOR = modelConfig.response.appColorScheme.appButtonsColor;
Constants.LOGO_PNG_PORTALS = modelConfig.response.design.logo;
Constants.PORTAL_ID = modelConfig.response.portalId;
Constants.PORTAL_NAME = modelConfig.response.portalCode;
StringBuilder strLangShort = new StringBuilder();
for (int i = 0; i < modelConfig.response.design.langs.size(); i++) {
strLangShort.append(modelConfig.response.design.langs.get(i)).append(",");
}
Model создавал через ConverterGson Плагин Android studio
Вопрос
Как правильно создать модель или Какие настройки сделать в Retrofit, чтобы программа игнорировала ошибку. И если приходит пустой langs то Модель все равно собралась.
GSON Конвертер Android studio создает модель так без Map
public static class DesignBean {
@SerializedName("logo") public String logo;
@SerializedName("favicon") public String favicon;
@SerializedName("langs") public LangsBean langs;
@SerializedName("certificate") public String certificate;
public static class LangsBean {
@SerializedName("logo-en") public String logoen;
@SerializedName("logo-ar") public String logoar;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В onTouch() нужно задать действие при одном нажатии(что сделать легко) и при двух быстрых нажатиях(желательно, чтобы можно было задать максимальный...
Добрый день, есть страничка testjsp, в ней есть код html получающий картинку стандартным тегом: