kotlin 如何更改Micronaut上Java java.time.OffsetDateTime的默认序列化/反序列化?

dgjrabp2  于 2023-01-26  发布在  Kotlin
关注(0)|答案(1)|浏览(152)

我使用Micronaut v3.8.1。Micronaut使用Jackson通过Gradle依赖关系管理进行序列化/反序列化:

implementation("io.micronaut.serde:micronaut-serde-jackson")

java.time.OffsetDateTime示例的默认序列化是表示自Epoch以来的毫秒数的数字。
例如,从控制器返回由下一个代码(Kotlin)表示的类的示例:

import io.micronaut.serde.annotation.Serdeable
import java.time.OffsetDateTime

@Serdeable
class Thing(val created: OffsetDateTime)

... Thing的单个示例将被序列化为如下形式:

{
"created": 1674594085000
}

我想更改配置,以生成该日期/时间的字符串表示形式,即:

{
"created": "2023-01-24T21:01:25.191493200Z"
}

如何做到这一点?

s8vozzvw

s8vozzvw1#

添加@JsonFormat(模式=)
例如:

@Serdeable
data class Thing(@field:JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSZ") val created: OffsetDateTime)

相关问题