Stack Overflow на русском Asked on November 13, 2021
При использовании Retrofit2 столкнулся с проблемой. Создал POJO вида:
public class Root {
private String str;
private Map <Long, Long> map;
//getters and setters
}
добавил класс MapJsonDesirializer
который отрабатывает, и даже правильно парсит JSON, но не присваивает его нужному полю.
public class MapJsonDeserializer implements JsonDeserializer<Map<Long, Long>> {
@Override
public Map<Long, Long> deserialize(
JsonElement json,
Type typeOfT,
JsonDeserializationContext context
) throws JsonParseException {
if (json != null) {
Map<Long, Long> result = new HashMap<>();
Iterator<Map.Entry<String, JsonElement>> iterator =
json.getAsJsonObject().entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, JsonElement> next = iterator.next();
result.put(Long.valueOf(next.getKey()), next.getValue().getAsLong());
}
return result;
}
return null;
}
}
Подскажите пожалуйста, что могло пойти не так? Или может есть ещё какие нибудь способы распарсить HashMap, который приходит с сервера?
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP