gpt4 book ai didi

kotlin - 在 Kotlin 中将枚举字段序列化为 JSON

转载 作者:行者123 更新时间:2023-12-04 12:23:03 31 4
gpt4 key购买 nike

我有一个愚蠢的问题让我有点震惊。
我有一个枚举和一个像这样的数据类:

enum class MyEventType(val typeName: String) {
FIRST("firstEventReceived")
}

data class MyEvent(
val id: String,
val event: MyEventType
)
我需要将其作为 json 字符串发送,但是普通的 deearilizer 会生成这样的 json
{ 
"id": "identifier",
"event": "FIRST"
}
但是我需要
{ 
"id": "identifier",
"event": "firstEventReceived"
}
据我了解,kotlin 允许覆盖数据类中的 getter,但我没有成功......
data class MyEvent(
val id: String
) {
val event: MyEventType get() event.typeName
}
但我错过了一些东西,我想......

最佳答案

最简单的方法可能是用 @JsonValue 注释该属性。 :

enum class MyEventType(@JsonValue val typeName: String) {
FIRST("firstEventReceived")
}

data class MyEvent(
val id: String,
val event: MyEventType
)


fun main() {
MyEvent(id = "foo", event = MyEventType.FIRST)
.let { jacksonObjectMapper().writeValueAsString(it) }
.let { println(it) }
}
打印:
{"id":"foo","event":"firstEventReceived"}

关于kotlin - 在 Kotlin 中将枚举字段序列化为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66419950/

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