Kotlinx.Serialization:如果所有内部属性也被排除,则从序列化中排除对象

use*_*643 2 json kotlin kotlinx.serialization

I\xe2\x80\x99m 尝试实现在排除所有内部对象的情况下从序列化中排除整个对象的功能。

\n

例如当我想将此数据类序列化为 json 时

\n
data class Car(val engine: Engine? = null, val size: Size?  = null)\ndata class Engine(val type: String?  = null, val horsePower: Int?  = null)\ndata class Size(val size: Int? = null)\n\nCar(engine = Engine(horsePower = null), size = Size(size = 1000))\n
Run Code Online (Sandbox Code Playgroud)\n

那么我应该得到以下输出(即使设置了引擎也被排除)

\n
car {\n    size {\n        size = 1000\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

有谁对如何实现这一目标有任何建议吗?

\n

Ekl*_*vya 7

用来kotlinx.serialization@kotlinx.serialization.Transient

data class Car(
   
   @kotlinx.serialization.Transient
   val engine: Engine? = null
   ...
Run Code Online (Sandbox Code Playgroud)