【发布时间】:2015-11-17 20:15:01
【问题描述】:
我有一个测试类,如下所示:
package examples;
import java.io.IOException;
import java.io.Serializable;
import java.io.ObjectOutputStream;
import java.io.ObjectInputStream;
public class Test implements Serializable {
private static final long serialVersionUID = -2174245110865129519L;
private transient int num = 5;
/**
* Write object (Serialization).
*/
private void writeObject(ObjectOutputStream out) throws IOException {
System.out.println("Write Test!");
// Save state.
out.defaultWriteObject();
// Save sum.
out.writeObject(num);
}
/**
* Read object (Deserialization).
*/
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
System.out.println("Read Test!");
// Restore state.
in.defaultReadObject();
// Restore num.
num = (int) in.readObject();
}
}
现在的问题是,当我想将 Test 对象序列化为 JSON 文件时,例如使用 Gson 像这样:
String json = new Gson().toJson(new Test());
... writeObject() 和 readObject() 根本没有被调用,我得到一个带有空对象的 JSON 文件。我使用 Java 8。
可能是什么问题?
【问题讨论】:
标签: java json serialization gson