我认为我有一个简单的用例。
我想要将一个包含类型元数据的POJO序列化(最好是一个我自己想出的简单名称,而不是完全限定的类/包名),然后稍后使用这些元数据让Jackson将JSON反序列化回它来自的具体类。被序列化和反序列化的类之间没有继承层级关系。
我的情况是我有一个接受多种文件类型的服务。对于上传的每个文件,客户端都可以检索到其结构和类型取决于它来自哪个文件的JSON数据。因此,当我从服务中检索JSON时,不知道应该反序列化成哪个具体类。我希望Jackson能够根据它提供的元数据来解决这个问题。
例如,我希望能够做到这一点:
String json = ... // get JSON from the service
Object obj = mapper.readValue(json, Object.class) // concrete class is not known
System.out.println(obj.getClass()) // I want this to be MyConcreteClass.class
- 返回的JSON类型之间没有继承层次结构。
- 我不想透露包名称或其他内部服务细节/结构。
- 我可以控制Jackson的序列化过程
相关问题:当JSON包含类型属性时,Jackson是否可以确定要反序列化到的根对象类型?
非常感谢您的帮助!