Десериализация JSON строки, если строка не фиксированная, может быть с разным количеством ответов

Андроид приложение выполняет запрос в базу данных и получает ответ в JSON, ответ приходит в виде вложенных массивов(строки БД). И вот этих ответов может быть один, может пять. Как обработать эти разные варианты ?? С самого начала задача стояла, что ответов БД будет пять, я спокойно получал JSON на пять объектов и в JSON и десериализовал это в пять классов, из которых затем получал нужные данные. Затем задача расширилась, подключили еще одну БД и вот она по запросу может выдать разное количество объектов, и если их менее пяти - приложение падает.
Ошибка:

NullPointerException: Attempt to invoke virtual method on a null object reference.

Я понимаю почему это происходит - объекта-то нет. И вот вопрос - как десериализовать JSON непостоянной длины ?
Пробовал аннотации связанные с Null, не помогло либо я не понял как надо.

вот JSON

{
  "0": {"Comp_name":"161012","Comp_text":"Отзывная компания. ","Comp_Url":null},

  "1": {"Comp_name":"161012","Comp_text":"Сервисная компания.  ","Comp_Url":null},

  "2": {"Comp_name":"free","Comp_text":"Сервисные компании для Quoris","Comp_Url":null},

  "3": {"Comp_name":"free","Comp_text":"Сервисные компании для Quoris","Comp_Url":null}
}

так обработали JSON

    GsonBuilder builder = new GsonBuilder();
    Gson gson = builder.create();
    ExampleDB example1 = gson.fromJson(answerHTTP, ExampleDB.class);

Модель для парсинга

    public class ExampleDB {

    @SerializedName("0")
    @Expose
    private com.example.summa_post._0 _0;
    @SerializedName("1")
    @Expose
    private com.example.summa_post._1 _1;
    @SerializedName("2")
    @Expose
    private com.example.summa_post._2 _2;
    @SerializedName("3")
    @Expose
    private com.example.summa_post._3 _3;
    @SerializedName("4")
    @Expose

    private com.example.summa_post._4 _4;

    public com.example.summa_post._0 get0() {
        return _0;
    }

    public void set0(com.example.summa_post._0 _0) {
        this._0 = _0;
    }

    public com.example.summa_post._1 get1() {
        return _1;
    }

    public void set1(com.example.summa_post._1 _1) {
        this._1 = _1;
    }

    public com.example.summa_post._2 get2() {
        return _2;
    }

    public void set2(com.example.summa_post._2 _2) {
        this._2 = _2;
    }

    public com.example.summa_post._3 get3() {
        return _3;
    }

    public void set3(com.example.summa_post._3 _3) {
        this._3 = _3;
    }

    public com.example.summa_post._4 get4() {
        return _4;
    }

    public void set4(com.example.summa_post._4 _4) {
        this._4 = _4;
    }

Ответы (1 шт):

Автор решения: Сергей Горыныч

Ответ нашелся. Можно не обращать внимание на то, что будет записано в классы после десериализации. При вызове метода из этого класса достаточно сделать исключение на Null.

→ Ссылка