Jackson 未能反序列化 Kotlin 数据 类

Jackson fails to deserialize Kotlin data classes

我正在使用 Jackson 反序列化 Kotlin 数据 类。我正在使用 jackson-kotlin-module 但 Jackson 给我以下错误:

Can not construct instance of MyClass: no suitable constructor found, can not deserialize from Object value

我已经尝试添加 proguard 规则来保留我的 类,但它的构造函数没有任何成功。

如果我添加一条规则以保留所有 kotlin 类,错误就会消失。

有什么想法吗?

经过反复试验,我发现 Proguard 正在从我的数据中剥离 kotlin.Metadata 注释 类。

添加以下规则可解决问题:

-keep class kotlin.Metadata { *; }

我还发现添加一条规则以在我的数据上保留合成方法 类 也需要:

-keepclassmembers public class com.mypackage.** {
    public synthetic <methods>;
}