2017-07-29 62 views
1

我需要將對象從一個套接字發送到另一個套接字,我想使用JSON進行序列化。 每個json對象都必須存儲它的類型。我的計劃是換我對象:json中的Gson商店對象類型

{ 
    /* the type */ "_type_": "my.package.MyClass", 
    /* the actual object */ "_data_": { 
     ... 
    } 
} 

我試圖通過編寫此序列化適配器

​​

從理論上講,這個工程要實現這一點,但是當我試圖序列嵌套的對象,一些失敗這樣

​​

因爲只有MyType將被包裝,所得JSON會是這個樣子:

{ 
    "__type__": "my.package.MyType", 
    "__data__": { 
     (No "__type__" field here...) 
     ... 
    } 
} 

是否有可能序列化對象與他們的類型是這樣的?

+0

它看起來像你正在試圖解決類似的問題[Gson - 反序列化到基於字段值的特定對象類型](https://stackoverflow.com/questions/21767485/)。你能否檢查一下,讓我們知道目前的問題是否重複? –

+1

@SergeyBrunov不是真的。我需要一個適用於每種類型的解決方案/我不知道哪些類型將被序列化... – NyxMC

+0

好,我明白了這一點。你可以請看看這些:[Java的 - 如何暴露與Gson序列化時的類名](https://stackoverflow.com/questions/19129711),[java-gson - 如何在序列化時包含類名屬性任何類型的對象](https://stackoverflow.com/questions/39999278)? –

回答

0

This answer描述瞭如何解決這個問題。它不使用Gson,而是使用Genson。我真的不喜歡Genson如何處理Pojos,但我想我必須忍受這一點。

+0

在Gesnon處理​​Pojos的方式中,你不喜歡什麼?這與Gson或Jackson如何處理它們非常相似。 – eugen