- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我创建一个 POJO 类并使用 mapper.writeValueAsString()
将整个对象转换为 Json方法,或者让 Spring 处理转换,JavaTimeModule
正确使用,如果我的 POJO 有 OffsetDateTime
其中,它将被转换为类似 2018-10-16T13:49:34.564748+02:00
的字符串。
对于某些场景,我需要使用映射器的T convertValue(Object fromValue, Class<T> toValueType)
方法并构建 ObjectNode
用手。该方法不会转换 OffsetDateTime
对象的方式与 writeValueAsString
相同.
我像这样构造我的 Jackson 映射器:
ObjectMapper defaultMapperObj = new ObjectMapper();
defaultMapperObj.registerModule(new GuavaModule());
defaultMapperObj.registerModule(new Jdk8Module());
defaultMapperObj.registerModule(new JavaTimeModule());
defaultMapperObj.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
使用映射器,我什至可以轻松地将列表转换为其 Json 字符串:
mapper.convertValue(
Arrays.asList(1,2,23), JsonNode.class
)
结果:
ArrayNode: [1,2,23]
但是如果我这样称呼:
mappper.convertValue(OffsetDateTime.now(), JsonNode.class)
我得到一个DecimalNode
:1542287917.2141993
最佳答案
来自JavaTimeModule
文档:
Most
java.time
types are serialized as numbers (integers or decimals as appropriate) if theSerializationFeature.WRITE_DATES_AS_TIMESTAMPS
feature is enabled, and otherwise are serialized in standard ISO-8601 string representation. [...]
因此,要达到所需的结果,请禁用 SerializationFeature.WRITE_DATES_AS_TIMESTAMPS
您的 ObjectMapper
中的功能实例:
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
关于java - Jackson ConvertValue 不使用 JavaTimeModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53320401/
我正在调用一个 API(使用 Jersey),它返回带时区偏移的日期时间。有时数据采用这种格式: "2017-03-28T14:40:00+01:00" 有时是这种格式(我无法控制) "2017-03
如果我创建一个 POJO 类并使用 mapper.writeValueAsString() 将整个对象转换为 Json方法,或者让 Spring 处理转换,JavaTimeModule正确使用,如果我
我刚刚发现,当我使用 JDK 8 时,我必须注册 JavaTimeModule 来添加对 java.time API 的支持。 @Bean public ObjectMapper ob
我想为本地日期设置全局 Jackson 序列化设置并使用类似 JavaTimeModule 的内容对于 java.time 但对于 JodaTime 的本地日期。 Joda Time 是否存在类似 J
当我尝试导入import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; 这是我的类(class): package com.linkedi
我定义了一个 JavaTimeModule: @Bean public Module java8TimeModule() { JavaTimeModule javaTimeModule = n
这个问题在这里已经有了答案: Is there a jackson datatype module for JDK8 java.time? (6 个答案) 关闭 5 年前。 不是重复的——我正在尝试
我正在尝试使用 Jackson 将对象从 JSON 序列化和反序列化(编码/解码)。其中一些对象具有 Java 8 LocalDate 和 ZonedDateTime。我在这里读到最好的选择是使用 j
我正在尝试像这样编码包含 ISO 格式时间戳的响应: { ... "time" : "2014-07-02T04:00:00.000000Z" ... } 进入我的域模型对象中的 ZonedD
我正在按照本教程使用 kubectl 命令从此处运行 Spark-Pi 应用程序。 https://github.com/GoogleCloudPlatform/spark-on-k8s-operat
我是一名优秀的程序员,十分优秀!