Модернизация + GSON анализирует массив объектов

Я получаю этот Джейсон как ответ от WS:

[
   [
     "test0",
     "test0"
   ],
   [
     "test1",
     "test1"
   ],
   [
     "test2",
     "test2"
   ],
   [
     "test3",
     "test3"
   ],
   [
     "test4",
     "test4"
   ],
   [
     "test5",
     "test5"
   ]
]

Обратите внимание, что нет полей «имя-значение», json представляет собой массив массивов строк. Я попробовал несколько попыток разобрать ответ. Я пробовал с pojo со списком строк, но у меня всегда одна и та же ошибка:

retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: ожидалось BEGIN_OBJECT, но было BEGIN_ARRAY в строке 1 столбца 2 пути $

MyPOJO для обратного вызова модификации следующий:

public class VotePollResults {

    private List<PartialResult> fields;

    public List<PartialResult> getFields() {
        return fields;
    }

    public void setFields(List<PartialResult> fields) {
        this.fields = fields;
    }

    public class PartialResult {

        private String description;
        private Integer votes;

        public PartialResult(String description, Integer votes) {
            this.description = description;
            this.votes = votes;
        }

        public String getDescription() {
            return description;
        }

        public Integer getVotes() {
            return votes;
        }

    }

}

У меня есть List с настраиваемым объектом, который обрабатывает эту структуру json.


person Chronos    schedule 07.04.2015    source источник


Ответы (2)


Ну я решил вопрос.

Я должен использовать это как обратный вызов при модернизации

Callback<List<List<String>>>

Надеюсь, это поможет кому-то...

person Chronos    schedule 07.04.2015
comment
Отлично вы решили. Я предлагаю отметить ваш ответ как действительный. :) - person Tomasz Dzieniak; 20.04.2016

Похоже, вы пытаетесь разобрать объект вместо массива. В случае вашего ответа этот код будет работать:

String[][] items = gson.fromJson(s, String[][].class);
person andrew    schedule 07.04.2015
comment
Спасибо за ответ. Я отредактировал вопрос для более подробной информации. Вы говорите, что мне нужно сделать свой POJO со строкой [][] в качестве поля? - person Chronos; 07.04.2015