將它換成transient
屬性,該屬性實現了Serializable
並且readObject()
和writeObject()
被覆蓋。
public class SerializableJSONArray implements Serializable {
private transient JSONArray jsonArray;
public SerializableJSONArray(JSONArray jsonArray) {
this.jsonArray = jsonArray;
}
public JSONArray getJSONArray() {
return jsonArray;
}
private void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject();
oos.writeObject(jsonArray.toString());
}
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException, JSONException {
ois.defaultReadObject();
jsonArray = new JSONArray((String) ois.readObject());
}
}
你看到有一個getter函數返回被包裝的JSONArray。改爲在您的域對象中使用它。或者,您也可以讓此類extends JSONArray
並將其所有方法委託給包裝的JSONArray。一個體面的IDE可以在一秒鐘內爲你自動生成它們。
您的看法如何處理'JSONArray'? – skaffman
我想打印出這個數組的值, 所以我總是可以將數組處理成一個可序列化的對象的正常數組 – Daxon