我有一个List<Animal>
,我想作为SOAP响应发送到客户端,但发送方法需要byte[]
并在客户端反序列化。如何序列化和反序列化Java中的对象列表?
谁能告诉我如何将我的List<Animal>
转换为byte[]
并将byte[]
转换回List<Animal>
。
我知道这个网站有很多这样的问题,但我对这个答案感到困惑。我尝试了很多,但都没有为我工作。
我有一个List<Animal>
,我想作为SOAP响应发送到客户端,但发送方法需要byte[]
并在客户端反序列化。如何序列化和反序列化Java中的对象列表?
谁能告诉我如何将我的List<Animal>
转换为byte[]
并将byte[]
转换回List<Animal>
。
我知道这个网站有很多这样的问题,但我对这个答案感到困惑。我尝试了很多,但都没有为我工作。
public static byte[] objectToByteArray(Object obj) throws Exception {
byte[] bytes = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
bytes = baos.toByteArray();
oos.close();
return bytes;
}
public static Object byteArrayToObject(byte[] buffer) throws Exception {
Object ob = null;
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(
buffer));
ob = ois.readObject();
ois.close();
return ob;
}
它取决于动物。如果它是可序列化的,你可以使用Java序列化mechanizm https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html。
我试过了。它只适用于单个对象或对象,但不适用于列表 –
user1036645
这样的嵌套对象。我再次尝试了您建议的代码。它抛出java.lang.ClassCastException:[B不能转换为java.util.List – user1036645