检测 Fleet 代码库中不当使用 Kotlin 序列化方法的情况,这些方法缺少显式的序列化/反序列化策略形参。

此检查可以识别对 JSON 序列化方法的调用,这些调用在未适当形参化时可能导致运行时意外反射。

该检查会专门检查对 kotlinx.serialization.json.Json 软件包中以下方法的调用:


decodeFromString
decodeFromJsonElement
encodeToString
encodeToJsonElement

这些方法应始终使用显式序列化/反序列化策略形参进行调用,以避免依赖于反射,这可能会在 Fleet 的多平台环境中引发问题。

有问题的代码示例:


Json.encodeToString(myObject) // 缺少 SerializationStrategy

正确用法:


Json.encodeToString(MyType.serializer(), myObject)