在我使用 kotlin-react 的新冒险中,我在尝试从后端解析一些包含枚举值的数据时遇到了困难。
Spring-Boot 以 JSON 形式发送对象,如下所示:
{
"id": 1,
"username": "Johnny",
"role": "CLIENT"
}
role
在这种情况下是枚举值,可以有两个值CLIENT
和LECTURER
。如果我要使用 java 库解析它或让 Spring-Boot 处理它,role
将被解析为相应的枚举值。
使用 kotlin-js' JSON.parse
,这是行不通的,我会在那里有一个简单的字符串值。
经过一些测试,我想出了这个片段
val json = """{
"id": 1,
"username": "Johnny",
"role": "CLIENT",
}"""
val member: Member = JSON.parse(json) { key: String, value: Any? ->
if (key == "role") Member.Role.valueOf(value.toString())
else value
}
在其中我必须手动定义从字符串值到枚举的转换。
有什么我遗漏的东西可以简化这种行为吗?
(我不是指为 JSON 使用 id 和查找这些,等等。我对 Kotlin-JS 中的一些方法很好奇)
我假设没有,因为JSON.parse
JS 中的“原始”没有这样做,而且 Kotlin 没有在其中添加任何额外的东西,但我仍然有希望!