我们的团队正计划从
需要进行哪些必要的更改,我们是否需要更改等效的属性。你能帮我们从哪里开始吗?
使用Jackson进行序列化,有@JsonRawValue
注解实现字符串值不带引号序列化。例如,使用以下代码
data class SomeData {
@JsonRawValue
value: String
}
Run Code Online (Sandbox Code Playgroud)
我可以序列化SomeData("{}")
并获取:
{ "value": {} }
Run Code Online (Sandbox Code Playgroud)
(如果没有注释,那就是{ "value": "{}" }
。)
我想使用 Kotlin 序列化来实现相同的目的。
我想要这个的原因是我通过 Rest 获取一个对象,将其存储在数据库中,稍后从那里加载它并返回它而不更改内容。我不关心对象中包含什么。所以我绝对不需要以任何方式解析或反序列化它。在最坏的情况下,内容会在过程中的某个地方被更改。在最好的情况下,这只是一些多余的计算。
kotlinx-serialization 中似乎没有相应的机制支持这种开箱即用的操作。查看源代码,似乎我需要一个带有 a 的类JsonPrimitive
(或JsonLiteral
)实例String
value
,但isString
设置为 false,但没有办法得到它。
另一种方法可能是编写一个序列化器来序列化String
不带引号的值,但我不知道如何实现。