我想使用Kotlin序列化使Kotlin类可序列化。
这个类非常简单,大概是这样的:
@Serializable(with = CustomSerializer::class)
data class MyObject(val keys: Set<String>)
现在,我需要序列化格式为JSON对象,其中键由Set<String>
给出,值始终为空JSON对象。
示例:
val example = MyObject(setOf("abc", "def"))
应序列化为:
{ "abc": {}, "def": {} }
原因是这个对象被发送到一个API,他们希望JSON看起来像这样...空对象可以包含一些指令,但我不想或不需要使用这些指令。
仅通过reading the documentation就无法做到这一点。
1条答案
按热度按时间pw136qt21#
我已经找到了一个方法...而且看起来很简单!
我意识到我可以得到一个空对象的序列化器几乎是免费的:
现在,我可以直接编写一个自定义序列化程序:
现在剩下要做的就是在类型上应用序列化器,可以使用以下命令完成:
在示例上运行
Json.encodeToString(example)
可以完美地工作。