Много потенциальных решений, но давайте добавим еще одно. Используйте Джексон (библиотека обработки JSON), чтобы выполнить преобразование "json-less", например:
ObjectMapper m = new ObjectMapper();
Map<String,Object> props = m.convertValue(myBean, Map.class);
MyBean anotherBean = m.convertValue(props, MyBean.class);
( эта запись в блоге имеет еще несколько примеров)
Вы можете конвертировать любые совместимые типы: совместимые, что означает, что если вы действительно конвертировали из типа в JSON и из этого JSON в тип результата, записи будут совпадать (при правильной настройке можно просто игнорировать нераспознанные).
Хорошо работает для случаев, которые можно ожидать, включая Карты, Списки, массивы, примитивы, бобовые POJO.