Джексон Укажите тип или формат даты для hashmap - PullRequest
0 голосов
/ 01 марта 2019

У меня есть карта JSON, которая поступает в мою службу отдыха.

{
   "creationDateTimeFrom":"2015-01-15T11:27:00:000", //DATETIME
    "creationDateTimeTo":"2016-07-15T11:27:00:000", //DATETIME
    "eventIndicatorCd":["MAND", "CHOS"], //LIST
    "exDateFrom":"2015-01-01", //DATE
    "exDateTo":"2016-01-01", //DATE
    "lastUpdateDateTimeFrom":"2015-08-01T08:21:47:000", //DATETIME
    "lastUpdateDateTimeTo":"2015-08-06T08:21:47:000", //DATETIME
    "eventSecurityBlbTicker":["CCRO3 BS", "MSFT UW"], //LIST
    "eventTypeCd":["DVCA", "DVOP"], //LIST
    "statusCd":["CACS_CONF", "CACS_APPROVED"]   //LIST
}

И у меня есть зарегистрированный конвертер в Spring, который конвертирует карту в объект, и эту карту я передаю своейJPA спецификация API для поиска критериев.

Map<String, Object> objectMap = mapper.readValue(jsonString, Map.class);

Проблема в том, что мне нужно преобразовать дату и дату и время String из карты в формат java.util.Date и заменить их.Нечто похожее на ниже.

map.put("exDateFrom", convertToDate(map.get("exDateFrom")));

Теперь я думаю о 2 решениях ниже.

Решение 1:

Я реализую функцию getUpdatedValueFor(String val), которая будет определять тип на основе формата с помощью регулярных выражений и изменять тип в карте.map.replaceAll((key, val) -> getUpdatedValueFor(val));

Решение 2:

Map<String, Object> objectMap = mapper.readValue(jsonString, Map.class);

Не уверен, возможно ли это или нет, но во время этого преобразования, если я пропущу стандартный формат Джексона Date черезкакой Джексон может понять его дату, и он автоматически конвертирует ее в формат java.util.Date, как он это делает для java.util.List, но я ничего не уточнил.

Кто-нибудь знает формат даты по умолчанию для Джексона Date или я могу как-то сказать Джексону, если формат строки 2015-01-15T11:27:00:000, чем преобразовать его в формат даты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...