Java Jackson数据绑定-如何在不指定目标类的情况下反序列化对象?

Java Jackson数据绑定-如何在不指定目标类的情况下反序列化对象?,java,jackson,jackson-databind,Java,Jackson,Jackson Databind,我正在从snakeyaml迁移,snakeyaml的一个特性是它自动在输出YAML中写入对象类型,这样反序列化将是透明和简单的。我似乎在Jackson数据绑定中找不到相同的功能 如果我只指定Object.class,我会得到一个预期的LinkedHashMap。此外,要使其正常工作,我必须在JSON中查看类类型,而我还没有找到一种本机方法 这是必需的吗?如果我正确理解了问题,也许您正在寻找答案 从文件中 // Include Java class name ("com.myempl.Impl

我正在从snakeyaml迁移,snakeyaml的一个特性是它自动在输出YAML中写入对象类型,这样反序列化将是透明和简单的。我似乎在Jackson数据绑定中找不到相同的功能

如果我只指定Object.class,我会得到一个预期的LinkedHashMap。此外,要使其正常工作,我必须在JSON中查看类类型,而我还没有找到一种本机方法


这是必需的吗?

如果我正确理解了问题,也许您正在寻找答案

从文件中

  // Include Java class name ("com.myempl.ImplClass") as JSON property "class"
  @JsonTypeInfo(use=Id.CLASS, include=As.PROPERTY, property="class")

最后,我在实际对象数据之前预加了类名,然后在实际将数据反序列化回对象之前将其拆分,这是snakeyaml自动执行的操作。不过,我希望在Jackson中自动执行此操作。

在此之前,我将有一个字段存储我正在序列化的类,然后将数据读回映射,查找该字段,然后从该字段获取类型,最后使用该字段重新运行导入:(.看起来像我想要的,让我试试:)显然,我在阅读时也需要做些什么,因为我刚刚得到了一张LinkedHashMap。对我来说,这种方法的另一个问题是,我不希望我的代码依赖于Jackson,因为我希望同时支持Jackson和Snakeyaml(也许还有其他东西)。这就是说,这个JsonTypeInfo注释确实可以编写元数据,但是我想知道是否可以通过配置对象映射器以编程方式完成同样的工作。