3
我有我認爲應該是一個簡單的用例。傑克遜反序列化到具體類基於類型
我想用類型元數據(最好是一個簡單的名字,而不是完全合格的類/包名稱)序列化一個POJO,然後讓Jackson將該JSON反序列化爲它來自的具體類使用這個元數據。序列化和反序列化的類之間沒有繼承層次結構。
我的場景是我有一個接受多種文件類型的服務。對於上傳的每個文件,客戶端可以檢索其結構和類型取決於其來自的文件的JSON數據。因此,當我從服務中獲取JSON時,不知道具體的類將被反序列化到什麼地方。我希望傑克遜根據它提供的元數據來判斷。
例如,我希望能夠做到這一點:
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類型之間沒有繼承層次返回。
- 我不想透露軟件包名稱或其他內部服務 details/structure。
- 我能控制的傑克遜的序列化過程
相關問題:Can jackson determine root object type to deserialize to when json includes type property?
非常感謝你的幫助!