json - 具有类注释的类型的序列化/反序列化的自定义增强
问题描述
我想要一堆这样的类:
@Special("SpecialThing")
data class MyThing(
val myVal: String
)
这个特定实例的序列化格式是:
{
"special": "SpecialThing",
"params": {
"myVal": "myValValue"
}
}
我希望能够对这些类型的注释类型进行序列化。
我希望做的一些事情:
- 将 Jackson 注释从这些类本身中排除(也许使用mixins?)。我想让 Jackson 特定的序列化与这些类型分开。
- 避免将其
"SpecialThing"
作为字段/属性 - 通过使用
"special"
值反序列化为正确的类型
我可能无法同时完成所有这些,但我很难找到合适的杰克逊作品来实现我的目标。有一些内置功能接近我想要的(比如JsonUnwrapped
)
我也许可以@JsonTypeInfo
以某种方式使用多态继承,但我希望有一种更清洁、更直接的方法。
如何处理需要“包装”的这些类型的序列化/反序列化?
解决方案
你不能完全做到这一点,因为你有一个杰克逊不关心的你自己的花哨的注释,但你可以用@JsonWrapped
和 mixin 来做其他的事情。
您将需要编写一个自定义 JSON 序列化器来处理您的注释,这非常容易。
推荐阅读
- javascript - 如何确定用户输入是否发生了更改事件?
- c# - 有这样的对象的名称吗?我将如何用它填充树视图?
- java - Java 用特殊字符分割
- javascript - 如何使用 CSRF 在 CI 3 中实现 Summernote 删除图像
- javascript - 如果表达式 B 跟随 A,则返回 true
- java - Windows 上的 Java 路径硬编码在我在 Linux 上的 shell 脚本中,需要使其更灵活
- windows - 如何在 Windows 10 电脑上安装 Redis
- excel - VBA Excel一次从多个工作表中删除形状
- azure - Azure 资源管理器模板需要帮助删除 IP 限制
- java - 无法通过java执行docker命令