Jackson序列化kotlin.time.Duration时数值不符的原因咨询
Jackson序列化kotlin.time.Duration时数值不符的原因咨询
嘿,我最近碰到个挺诡异的问题,用Jackson序列化kotlin.time.Duration的时候,出来的结果完全没法理解,来问问各位大佬!
我写了段简单的测试代码:
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper import kotlin.time.DurationUnit import kotlin.time.toDuration val x = 1.toDuration(DurationUnit.SECONDS) val mapper = jacksonObjectMapper() val y = mapper.writeValueAsString(x)!! println(y)
我明明定义的是1秒的Duration,结果运行后打印出来的却是2000000000——这数刚好是2秒的纳秒数啊!我翻来覆去检查了好几遍代码,确定Duration的单位是SECONDS,数值也确实是1,实在搞不懂为啥会变成这样。
我的开发环境版本:
- Kotlin 1.9.21
- Jackson 2.15.2
有没有人能帮我捋捋这个情况到底是怎么发生的呀?为啥序列化后的结果会是预期值的两倍还转成纳秒了呢?
内容来源于stack exchange
相关产品推荐
相关产品推荐

