Как настроить ObjectMapper для DeSerialize Java.sql.timestamp?JAVA

Программисты JAVA общаются здесь
Anonymous
Как настроить ObjectMapper для DeSerialize Java.sql.timestamp?

Сообщение Anonymous »

Я сталкиваюсь с проблемой с настройкой Jackson ObjectMapper для десериализации java.sql.timestamp . Я не знаю, как глобальный объявляется, что затрудняет отладку, какая настройка точно не работает. Myclass !
класс Deserialize

Код: Выделить всё

import java.sql.Timestamp;

public class MyClass {
private Timestamp startTime;
}
< /code>
 json < /h3>
{
"startTime":"2025-07-08T09:29:54.000+0000"
}
< /code>
 тестовый пример < /h3>
@SpringBootTest
public class DeserializationTest {

@Autowired
ObjectMapper injectedMapper;

@Test
public void foo() throws JsonMappingException, JsonProcessingException {
ObjectMapper localMapper = new ObjectMapper();
String json = "{\"startTime\":\"2025-07-08T09:29:54.000+0000\"}";

localMapper.readValue(json, MyClass.class);    // this works
injectedMapper.readValue(json, MyClass.class); // this fails with InvalidFormat

assertTrue(true);
}
}
injectedmapper.readvalue (...) вызов сбое с Invalidformat не может дать де-прозеризацию типа 'java.lang.long' из строки "2025-07-08t09: 29: 54.000+0000": не верный 'java.lang.long' long 'value
Prony p>. В этом направлении уже есть несколько вопросов, но ответы обычно рекомендуют аннотации в классе, которые должны быть опустошены или иметь пользовательские форматы временных метров. Вместо этого я ищу конфигурацию в определении ObjectMapper. /> edit2: < /strong>
Сравнение настроек ObjectMapper:

Код: Выделить всё

new ObjectMapper()

Код: Выделить всё

Modules:
-none-

Serialization Features:
WRAP_ROOT_VALUE -> false
INDENT_OUTPUT -> false
FAIL_ON_EMPTY_BEANS -> true (enabled by default)
FAIL_ON_SELF_REFERENCES -> true (enabled by default)
WRAP_EXCEPTIONS -> true (enabled by default)
FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS -> true (enabled by default)
WRITE_SELF_REFERENCES_AS_NULL -> false
CLOSE_CLOSEABLE -> false
FLUSH_AFTER_WRITE_VALUE -> true (enabled by default)
WRITE_DATES_AS_TIMESTAMPS -> true (enabled by default)
WRITE_DATE_KEYS_AS_TIMESTAMPS -> false
WRITE_DATES_WITH_ZONE_ID -> false
WRITE_DATES_WITH_CONTEXT_TIME_ZONE -> true (enabled by default)
WRITE_DURATIONS_AS_TIMESTAMPS -> true (enabled by default)
WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS -> false
WRITE_ENUMS_USING_TO_STRING -> false
WRITE_ENUMS_USING_INDEX -> false
WRITE_ENUM_KEYS_USING_INDEX -> false
WRITE_NULL_MAP_VALUES -> true (enabled by default)
WRITE_EMPTY_JSON_ARRAYS -> true (enabled by default)
WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED -> false
WRITE_BIGDECIMAL_AS_PLAIN -> false
WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS -> true (enabled by default)
ORDER_MAP_ENTRIES_BY_KEYS -> false
EAGER_SERIALIZER_FETCH -> true (enabled by default)
USE_EQUALITY_FOR_OBJECT_ID -> false

Deserialization Features:
USE_BIG_DECIMAL_FOR_FLOATS -> false
USE_BIG_INTEGER_FOR_INTS -> false
USE_LONG_FOR_INTS -> false
USE_JAVA_ARRAY_FOR_JSON_ARRAY -> false
FAIL_ON_UNKNOWN_PROPERTIES -> true (enabled by default)
FAIL_ON_NULL_FOR_PRIMITIVES -> false
FAIL_ON_NUMBERS_FOR_ENUMS -> false
FAIL_ON_INVALID_SUBTYPE -> true (enabled by default)
FAIL_ON_READING_DUP_TREE_KEY -> false
FAIL_ON_IGNORED_PROPERTIES -> false
FAIL_ON_UNRESOLVED_OBJECT_IDS -> true (enabled by default)
FAIL_ON_MISSING_CREATOR_PROPERTIES -> false
FAIL_ON_NULL_CREATOR_PROPERTIES -> false
FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY -> true (enabled by default)
FAIL_ON_TRAILING_TOKENS -> false
WRAP_EXCEPTIONS -> true (enabled by default)
ACCEPT_SINGLE_VALUE_AS_ARRAY -> false
UNWRAP_SINGLE_VALUE_ARRAYS -> false
UNWRAP_ROOT_VALUE -> false
ACCEPT_EMPTY_STRING_AS_NULL_OBJECT -> false
ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT -> false
ACCEPT_FLOAT_AS_INT -> true (enabled by default)
READ_ENUMS_USING_TO_STRING -> false
READ_UNKNOWN_ENUM_VALUES_AS_NULL -> false
READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE -> false
READ_DATE_TIMESTAMPS_AS_NANOSECONDS -> true (enabled by default)
ADJUST_DATES_TO_CONTEXT_TIME_ZONE -> true (enabled by default)
EAGER_DESERIALIZER_FETCH -> true (enabled by default)
< /code>
AutoWailired One: < /p>
Modules:
com.fasterxml.jackson.datatype.jdk8.Jdk8Module
jackson-datatype-jsr310
jackson-module-kotlin
jackson-module-parameter-names
org.springframework.boot.jackson.JsonComponentModule
Spring Data Geo Mixins

Serialization Features:
WRAP_ROOT_VALUE -> false
INDENT_OUTPUT -> false
FAIL_ON_EMPTY_BEANS -> true (enabled by default)
FAIL_ON_SELF_REFERENCES -> true (enabled by default)
WRAP_EXCEPTIONS -> true (enabled by default)
FAIL_ON_UNWRAPPED_TYPE_IDENTIFIERS -> true (enabled by default)
WRITE_SELF_REFERENCES_AS_NULL -> false
CLOSE_CLOSEABLE -> false
FLUSH_AFTER_WRITE_VALUE -> true (enabled by default)
WRITE_DATES_AS_TIMESTAMPS -> false (enabled by default)
WRITE_DATE_KEYS_AS_TIMESTAMPS -> false
WRITE_DATES_WITH_ZONE_ID -> false
WRITE_DATES_WITH_CONTEXT_TIME_ZONE -> true (enabled by default)
WRITE_DURATIONS_AS_TIMESTAMPS -> false (enabled by default)
WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS -> false
WRITE_ENUMS_USING_TO_STRING -> false
WRITE_ENUMS_USING_INDEX -> false
WRITE_ENUM_KEYS_USING_INDEX -> false
WRITE_NULL_MAP_VALUES -> true (enabled by default)
WRITE_EMPTY_JSON_ARRAYS -> true (enabled by default)
WRITE_SINGLE_ELEM_ARRAYS_UNWRAPPED -> false
WRITE_BIGDECIMAL_AS_PLAIN -> false
WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS -> true (enabled by default)
ORDER_MAP_ENTRIES_BY_KEYS -> false
EAGER_SERIALIZER_FETCH ->  true (enabled by default)
USE_EQUALITY_FOR_OBJECT_ID -> false

Deserialization Features:
USE_BIG_DECIMAL_FOR_FLOATS -> false
USE_BIG_INTEGER_FOR_INTS -> false
USE_LONG_FOR_INTS -> false
USE_JAVA_ARRAY_FOR_JSON_ARRAY -> false
FAIL_ON_UNKNOWN_PROPERTIES -> false (enabled by default)
FAIL_ON_NULL_FOR_PRIMITIVES -> false
FAIL_ON_NUMBERS_FOR_ENUMS -> false
FAIL_ON_INVALID_SUBTYPE -> true (enabled by default)
FAIL_ON_READING_DUP_TREE_KEY -> false
FAIL_ON_IGNORED_PROPERTIES -> false
FAIL_ON_UNRESOLVED_OBJECT_IDS -> true (enabled by default)
FAIL_ON_MISSING_CREATOR_PROPERTIES -> false
FAIL_ON_NULL_CREATOR_PROPERTIES -> false
FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY -> true (enabled by default)
FAIL_ON_TRAILING_TOKENS -> false
WRAP_EXCEPTIONS -> true (enabled by default)
ACCEPT_SINGLE_VALUE_AS_ARRAY -> false
UNWRAP_SINGLE_VALUE_ARRAYS -> false
UNWRAP_ROOT_VALUE -> false
ACCEPT_EMPTY_STRING_AS_NULL_OBJECT -> false
ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT -> false
ACCEPT_FLOAT_AS_INT -> true (enabled by default)
READ_ENUMS_USING_TO_STRING -> false
READ_UNKNOWN_ENUM_VALUES_AS_NULL -> false
READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE -> false
READ_DATE_TIMESTAMPS_AS_NANOSECONDS -> true (enabled by default)
ADJUST_DATES_TO_CONTEXT_TIME_ZONE -> true (enabled by default)
EAGER_DESERIALIZER_FETCH -> true (enabled by default)
< /code>
Просто различные свойства: < /p>
Modules:
-none-
-------
Modules:
com.fasterxml.jackson.datatype.jdk8.Jdk8Module
jackson-datatype-jsr310
jackson-module-kotlin
jackson-module-parameter-names
org.springframework.boot.jackson.JsonComponentModule
Spring Data Geo Mixins

Serialization Features:
WRITE_DATES_AS_TIMESTAMPS -> true (enabled by default)
WRITE_DURATIONS_AS_TIMESTAMPS -> true (enabled by default)
-------
WRITE_DATES_AS_TIMESTAMPS -> false (enabled by default)
WRITE_DURATIONS_AS_TIMESTAMPS -> false (enabled by default)

Deserialization Features:
FAIL_ON_UNKNOWN_PROPERTIES -> true (enabled by default)
-------
FAIL_ON_UNKNOWN_PROPERTIES -> false (enabled by default)
Я бы ожидал, что другие функции десериализации, которые будут разными, но это только fail_on_unknown_properties .
Я также попытался зарегистрировать модули на локальном отображении, ожидая, что это может сломать десериализацию для нее.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -timestamp

Вернуться в «JAVA»