【发布时间】:2018-09-13 15:08:26
【问题描述】:
我是 Kotlin 的新手,甚至是 Kotlin Serialization 的新手,我正在尝试将 Kotlin 数据类转换为 JSON。看下面的示例代码:
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.JSON
fun main(args: Array<String>) {
println(JSON.stringify(BaseClass1("abc")))
println(JSON.stringify(BaseClass2("abc")))
}
@Serializable
data class BaseClass1(
val a: String
)
@Serializable
data class BaseClass2(
val a: Any
)
输出是:
{"a":"abc"}
{"a":["kotlin.String","abc"]}
所以我将字符串保存在Any 类型的变量中(这应该是完全有效的)。但是,这导致序列化的值是类型和值的数组。其他类和子类也会发生这种情况(例如,当我扩展字段的类型时)。
无论字段的实际类型如何,如何让stringify 始终使用该值?我希望上面程序的第二个stringify 结果与第一个匹配。
【问题讨论】:
标签: json serialization kotlin