с помощью дооснащения 2 Я потребляющих API, который дает возвращает объект JSON с помощью следующей реакции:GSON карта ключевых пар значений
{
"status": "ok",
"questions": {
"1": "What was your childhood nickname?"
}
}
Использование GSON, я хотел сериализация это к следующему классу:
public class SecurityQuestionList {
public String status;
public Map<String, String> questions;
}
Я зарегистрировал TypeAdapter с моим объектом Gson, но вопросы всегда пусты.
.registerTypeAdapter(new TypeToken<Map<String, String>>() {}.getType(), new TypeAdapter<Map<String, String>>() {
@Override
public void write(JsonWriter out, Map<String, String> value) throws IOException {
}
@Override
public Map<String, String> read(JsonReader in) throws IOException {
Map<String, String> map = new HashMap<String, String>();
try {
in.beginArray();
while (in.hasNext()) {
map.put(in.nextString(), in.nextString());
}
in.endArray();
} catch (IOException ex) {
}
return map;
}
})
Что я делаю неправильно?
Я получаю сообщение об ошибке, если я использую ваш код: Вызванный: java.lang.IllegalStateException: Ожидаемый BEGIN_OBJECT но BEGIN_ARRAY в строке 1 колонки 29 пути $ .questions – Ventis
Мой тестовый код в порядке. Ваши данные json похожи на этот формат? Json-массив подобен этому. – ittianyu
[{"xxx": "yyy"}, {"xxx": "yyy"}] – ittianyu