Я использую библиотеку Джексона, и я столкнулся с ситуацией, когда я хочу отключить аннотацию @JsonFormat с помощью objectmapper при сериализации / десериализации.
Мой код Api находится в сторонней библиотеке, поэтому я не могу удалить/ добавьте любую аннотацию, поэтому objectMapper - единственный выбор.
Класс API:
public class ApiClass {
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'")
private DateTime time;
}
Мой код:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.configure(Feature.ALLOW_COMMENTS, true);
objectMapper.configure(MapperFeature.AUTO_DETECT_IS_GETTERS, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.setSerializationInclusion(Include.NON_ABSENT);
objectMapper.registerModule(new JodaModule());
objectMapper.registerModule(new JavaTimeModule());
String str = " {\"time\": \"2012-05-01\"}";
ApiClass msg = objectMapper.readValue(str, ApiClass.class);
Я хочу, чтобы это преобразование прошло успешно.
В настоящее время я получаю: com.fasterxml.jackson.databind.JsonMappingException: Неверный формат: "2012-05-01" слишком короткое
Пожалуйста, помогите мне здесь.
Заранее спасибо