С этим подходом связаны две проблемы.
Прежде всего, есть подозрительное утверждение импорта:
import org.codehaus.jackson.map.ObjectMapper;
org.codehaus
является предшественником текущего com.fasterxml
.Непонятно, было ли оно использовано намеренно, но импорт ObjectMapper
должен быть
import com.fasterxml.jackson.databind.ObjectMapper;
Во-вторых, метка времени не может быть прочитана напрямую из простой строки, такой как
String timestamp = "2019-02-12T07:53:11+0000";
ObjectMapper
ожидает строку JSON.Таким образом, если бы это были
{ "timestamp": "2019-02-12T07:53:11+0000" }
и класс обтекания
class TimestampWrapper {
private Timestamp timestamp;
// getter + setter for timestamp
}
, тогда тестовая последовательность будет выполнена правильно:
String timestamp = "{ \"timestamp\": \"2019-02-12T07:53:11+0000\" }";
CustomObjectMapper customObjectMapper = new CustomObjectMapper();
TimestampWrapper result = customObjectMapper.readValue(timestamp, TimestampWrapper.class);
System.out.println(result.getTimestamp());
update:
Или, без использования выделенного класса-оболочки, его можно десериализовать из массива JSON:
String timestamp = "[ \"2019-02-12T07:53:11+0000\" ]";
CustomObjectMapper customObjectMapper = new CustomObjectMapper();
Timestamp[] result = customObjectMapper.readValue(timestamp, Timestamp[].class);
System.out.println(result[0]);