我正在从snakeyaml 迁移,snakeyaml 的一个功能是它会自动在输出 YAML 中写入对象类型,以便反序列化透明且容易。我似乎在 Jackson Databind 中找不到相同的功能。
如果我只指定 Object.class,我会得到预期的 LinkedHashMap。此外,要使其正常工作,我必须在 JSON 中查看类类型,但我还没有找到一种本地方法来做到这一点。
这是必需的吗?
我正在从snakeyaml 迁移,snakeyaml 的一个功能是它会自动在输出 YAML 中写入对象类型,以便反序列化透明且容易。我似乎在 Jackson Databind 中找不到相同的功能。
如果我只指定 Object.class,我会得到预期的 LinkedHashMap。此外,要使其正常工作,我必须在 JSON 中查看类类型,但我还没有找到一种本地方法来做到这一点。
这是必需的吗?
如果我正确理解问题,也许您正在寻找JsonTypeInfo
从文档
// Include Java class name ("com.myempl.ImplClass") as JSON property "class"
@JsonTypeInfo(use=Id.CLASS, include=As.PROPERTY, property="class")
我最终在实际对象数据之前添加了类名,然后在将数据实际反序列化回一个对象之前将其拆分出来,这是snakeyaml 自动执行的操作。不过,我希望在杰克逊自动执行此操作。