2016-02-03 47 views
0

我想序列化從ArrayList繼承的類A.Gson/Libgdx Json:Serialize類擴展ArrayList

class A<T> extends ArrayList<T>{ 
    // some stuff ... 
} 

這工作得很好。輸出是列表元素的簡單數組。但是,如果我將字段添加到A級,他們沒有得到連載:

class A<T> extends ArrayList<T>{ 
    String text = "text"; 
} 

導致同樣的JSON輸出作爲上述類 - 字符串不會出現。我用gson和libgdx json序列化程序嘗試了這一點,它們都以相同的方式工作。我如何序列化類字段和列表元素?

( 正如我所存儲的列表作爲場A中的解決方法:

class A<T>{ 
    ArrayList<T> list; 
    String key; 
} 

但這不是一個真正的完美的解決方案,因爲我要實現所有列表方法(如。新增()。 (),...)in A by )

非常感謝您的幫助。也 爲您的序列化的問題:

回答

0

嘗試做這一點的同時解析:

Type type = new TypeToken<A<WhateverTypeOfArrayListYouWant>>(){}.getType(); 
gson.fromJson(string, type); 

編輯

@Override 
private void writeObject(java.io.ObjectOutputStream s) 
    throws java.io.IOException{ 
    super.writeObject(s); 
    s.writeInt(yourInt); 
    s.writeLong(yourLong); 
} 

@Override 
private void readObject(java.io.ObjectInputStream s) 
    throws java.io.IOException, ClassNotFoundException { 
    super.readObject(s); 
    yourInt= s.readInt(); 
    yourLong= s.readLong(); 

} 
+0

您好,感謝答覆。但是我已經知道類型T.我的問題是A的字段沒有被序列化。所有序列化的是A. – cnagon

+0

@cnagon的列表元素編輯答案......這可能有幫助 – Mo1989