У меня есть сценарий, в котором мне нужно сохранить динамические атрибуты в базе данных в форме HashMap, предоставленной пользователем с помощью службы отдыха.Эти динамические атрибуты определены как
HashMap<String, Object> attr = new HashMap<>();
Теперь мне нужно преобразовать объект в соответствующие им типы данных времени выполнения в соответствии с бизнес-логикой.До сих пор мне удалось преобразовать строки, числа, но Date
вызывает проблемы.Это моя логика преобразования.
input = attr.get(label);
if (input instanceof String) {
// logic 1
}
else if (input instanceof Number) {
// logic 2
}
else if (input instanceof Date) {
// logic 3
}
Проблема в том, что когда дата указывается в любом формате даты (в моем случае в формате зулу), преобразователь jacksonjson
не может ее проанализировать и выдает ошибку, заявив, что не может проанализироватьвходная строка.Я понимаю, что это был Date
объект.Я мог бы написать JsonDeserializer
и аннотировать с ним объект Date
, но как это Object
в пределах HashMap
, как мне этого достичь.
Я также пытался поймать эту датустрока и ее синтаксический анализ с использованием SimpleDateFormat
, но не удалось, поскольку исключение происходит задолго до этой логики.