класс 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);
}
}
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)
Я также попытался зарегистрировать модули на локальном отображении, ожидая, что это может сломать десериализацию для нее.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -timestamp