gpt4 book ai didi

java - Jackson 对象映射器 com.fasterxml.jackson.databind.exc.MismatchedInputException

转载 作者:行者123 更新时间:2023-12-02 01:04:16 26 4
gpt4 key购买 nike

我正在尝试运行以下 Junit 测试:

  @Test
public void testObjectMapper() throws IOException {
String json = new ObjectMapper().writeValueAsString(Instant.now());
ObjectMapper om = new ObjectMapper()
.registerModule(new JavaTimeModule())
.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false)
.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS, false)
.setSerializationInclusion(JsonInclude.Include.NON_NULL);
om.readValue(json, Instant.class);
}

但出现以下异常:

com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected one of [VALUE_STRING, VALUE_NUMBER_INT, VALUE_NUMBER_FLOAT] for java.time.Instant value
at [Source: (String)"{"nano":627594000,"epochSecond":1581946138}"; line: 1, column: 1]

不知道为什么我无法将 (String)"{"nano":627594000,"epochSecond":1581946138}"反序列化为 Instant 类。

需要帮助!

最佳答案

您应该使用用于反序列化的相同ObjectMapper来序列化您的Instant

    ObjectMapper om = new ObjectMapper()
.registerModule(new JavaTimeModule())
.configure(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS, false)
.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
.configure(DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS, false)
.setSerializationInclusion(JsonInclude.Include.NON_NULL);
String json = om.writeValueAsString(Instant.now());
om.readValue(json, Instant.class);

关于java - Jackson 对象映射器 com.fasterxml.jackson.databind.exc.MismatchedInputException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60263646/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com