TransWikia.com

Android Gson не присваивает POJO объекту значение при использовании Retrofit2

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, который приходит с сервера?

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP