POJO к карте без строки JSON между

70
6

Соответствует ли Gson эквивалент этого:

Gson gson = ...; //build gson with custom type adapters
gson.fromJson(gson.toJson(pojo), Map.class);

без накладных расходов превратить все в String?

Другими словами, мне нужен эквивалент этой линии, использующей Джексон:

objectMapper.convertValue(pojo, Map.class)

Я знаю, что это можно сделать с использованием других библиотек или просто отражением, но причина специально использовать Gson заключается в том, что преобразование должно подчиняться той же пользовательской логике, что и объект gson уже настроен с помощью адаптеров дополнительного типа. Использование любой другой библиотеки означало бы дублирование этой логики.

спросил(а) 2017-01-02T21:58:00+03:00 3 года, 9 месяцев назад
1
Решение
58

Я считаю, что это способ сделать это:

JsonElement jsonElement = gson.toJsonTree(pojo);
return gson.fromJson(jsonElement, Map.class);

Это будет gson настраиваемую логику преобразования, настроенную в gson, но не будет gson промежуточное представление.

ответил(а) 2017-01-02T22:41:00+03:00 3 года, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема