2
使用Jackson,我們可以選擇將類型信息附加到序列化對象(http://jackson.codehaus.org/1.5.5/javadoc/org/codehaus/jackson/annotate/JsonTypeInfo.html)。使用GSON在序列化JSON中輸入信息
有沒有辦法做到這一點使用GSON,如:
{
propertyName:"test",
_className:"foo.bar.TestClass"
}
的想法是有它通用的,所以當一個ArrayList<Object>
反序列化,合適的對象實例恢復它。
我看到了這個問題:https://stackoverflow.com/a/8683689/1001027這或多或少是我所需要的,但它僅適用於特定類別的對象。實現如何以這種通用的方式進行,每個對象都將與這個屬性進行序列化?
我很確定,但問題是實現需要是通用的,並且回退到常規類型(String,int,float,double等)的標準,僅適用於複雜對象應與班級名稱,我還沒有弄清楚如何做到這一點...請查看我發佈的鏈接的最後一句話。 – 2013-04-25 11:37:14
@JavaMentor無論如何,你需要使用例如[DeserializationContext] [1]在代碼中參數化對象。在反序列化方法中,您可以檢查在JSON字符串中輸入的類型是否與您在代碼中傳遞的類型匹配。 [1]:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/JsonDeserializationContext.html – user2256686 2013-04-25 12:38:21
這是肯定的,但問題並不完全相同這;) – 2013-04-25 12:41:18