数据类的 Kotlin 序列化名称

问题描述 投票:0回答:1

我有一个可以序列化为json的数据类。是否也可以使用 @SerialName 之类的东西来序列化类名?我知道我可以通过使用另一个将“File”作为属性的类来实现这一点,但我想避免这种情况,因为它会导致我的项目中出现很多不必要的包装类。

@Serializable
@SerialName("file")
data class File(
    val name: String,
    val version: Int,
    val type: String
)

我想要的 JSON 是什么样的。

{“文件”:{“名称”:“简历”,“版本”:“1”,“类型”:“pdf”}}

json kotlin serialization
1个回答
0
投票

这不会通过更改

@SerialName
或其他类似的注释来实现。您需要编写一个替代的 KSerializer(另一个类!),要么手动,要么使用代理(另一个新类)。不过,代孕并不需要很长时间,而且不需要太多努力就可以完成工作。

如果您热衷于采用一种优雅的方法,那么我建议您编写一个 KSP 插件 来处理您自己的注释。

© www.soinside.com 2019 - 2024. All rights reserved.