2017-04-03 56 views
0

我們有一個通用API來獲取有效負載(考慮JSON)以及來自不同客戶端的客戶端ID。運行時的Java Casting

如何使用客戶端ID將負載轉換爲適當的POJO。

Rough Idea是將負載反序列化爲java對象,並基於clientId將JAVA對象轉換爲相應的POJO。

我有一個ENUM類的地方配置,看起來如下所示。

public enum SourceEnum { 
    ClientId1(A.class); 
    ClientId2(B.class); 

    Class clazz; 
    SourceEnum(Class clazz) { 
     this.clazz = clazz; 
    } 

    public Class getClazz(){ 
     return this.clazz; 
    } 
} 

我們可以使用SourceEnum.valueOf(clientId).getClazz()來獲取類。

如何使用此信息將java對象轉換爲相應的類對象?

這是解決這個問題的正確方法嗎?想試試看是否有更好的方法來解決這個問題

+1

你會想用[傑克遜](https://github.com/FasterXML/jackson-databind/)來做你需要的。 – ericbn

+2

[JSON在Java中的對象]的可能的重複(http://stackoverflow.com/questions/30587161/json-to-object-in-java) – ericbn

+2

提示:在您的問題鑄造術語是誤導。你的意思是轉換。 – GhostCat

回答

-1

如果你想將給定的json轉換爲java對象,請嘗試使用google的Gson

+1

僅鏈接(或鏈接 - 主要)答案皺起了眉頭,很快就被拒絕了。請考慮擴大您的答案以實現自給自足(由於多種原因,外部油墨可能會變得不可用,使答案不完整,幾乎無用) – ochi