我有一个数据类,它有一个类型是另一个数据类的属性,如下所示:
@Serializable
data class Vehicle (
val color: String,
val miles: Int,
val year: Int,
val garage: Garage
)
@Serializable
data class Garage (
val latitude: Float,
val longitude: Float,
val name: String
)
序列化后,它会产生如下输出:
{
"color" : "black" ,
"miles" : 35000 ,
"year" : 2017 ,
"garage" : { "latitude" : 43.478342 , "longitude" : -91.337000 , "name" : "Paul's Garage" }
}
但是,我想garage
成为其 JSON 表示的文字字符串,而不是实际的 JSON 对象。换句话说,期望的输出是:
{
"color" : "black" ,
"miles" : 35000 ,
"year" : 2017 ,
"garage" : "{ \"latitude\" : 43.478342 , \"longitude\" : -91.337000 , \"name\" : \"Paul's Garage\" }"
}
我怎样才能在 Kotlin 中做到这一点?可以只用kotlinx.serialization
Jackson/Gson 完成还是绝对必要?
请注意,此输出用于特定用途。我无法覆盖基本序列化程序,因为我仍然需要从普通 JSON 序列化/反序列化(第一个示例)。换句话说,最好的方案是将第一个 JSON 样本转换为第二个样本,而不一定让数据类直接生成第二个样本。
谢谢!