![]() |
1
8
关于创建自定义序列化程序,您可能是对的。 我尝试使用 Jackson 图书馆和Kotlin。 以下是Jackson的Maven依赖项:
可以使用此库将密封的类序列化为JSON,无需额外的自定义序列化程序,但反序列化需要自定义反序列化程序。 下面是我用来序列化和反序列化密封类的玩具代码:
如果运行此代码,则输出如下:
|
![]() |
2
5
我最近也遇到了类似的问题(虽然使用的是Jackson,而不是Genson) 假设我具备以下条件:
然后添加
现在可以使用
|
![]() |
3
3
我最终实现了一个定制的转换器和一个工厂,以便将其正确地插入Genson。 它使用Genson的元数据约定将对象表示为:
转换器假定 useClassMetadata 标志集,所以序列化只需要标记一个空对象。对于反序列化,它从元数据解析类名,加载它并获取 反对意见 。
确保此转换器仅应用于实际 对象 ,我使用工厂注册它,它告诉Genson何时使用它以及何时返回默认实现。
工厂可通过生成器配置Genson:
使用链式转换器功能的代码可能会更好,但我还没有时间检查它。 |
![]() |
4
1
不需要
上述示例摘自its主回购自述: https://github.com/FasterXML/jackson-module-kotlin |
![]() |
Emirhan Ãzsoy · C#序列化-找不到程序集 7 年前 |