2015-12-08 140 views
0

我有一行代碼,我將我的Object轉換爲POJO。我正在使用傑克遜庫。動態獲取類名和參考?

POJO container = objectMapper.convertValue(resource, POJO.class); 

現在我必須爲許多(〜50)POJO做這個。所以我沒有寫這麼多的開關盒,而是想動態地用一行來完成。我從哪裏獲得POJO名稱的枚舉。

有沒有簡單的方法來實現這一點。我搜索並得到了一個想法,Class.forName將被使用。我將從那裏獲得POJO.class。如何動態地獲得對POJO的引用?

+1

您需要知道您要將JSON轉換爲什麼,除非您可以通過字段的唯一組合來編寫確定對象類型的內容(或者您有一些與JSON直接相關的代碼)將不得不以艱難的方式去做。 –

回答

0

事實是,你可以直接轉換成一些類,但你不能猜出類:你必須在你的數據信息也

1指定數據的格式,並嵌入的名字裏面

實例類:

{"classname":"MyClass","object": ["var1": 1, "var2":33,"var3":"some string","var4":true] } 

2讀你的數據作爲 「經典JSON對象」,得到的類名,而 「它休息」(對象)

3現在你有你的班級名稱:你可以將「對象」轉換爲你想要的。