我有一个ArrayList。我已经使用套接字连接Java Server和Android。我如何将ArrayList从Android发送到Java Server?
public class Person implements Serializable{
private String name;
private String number;
public Person(String name, String nr){
this.name = name;
number = nr;
}
public String getName(){
return name;
}
public String getNr(){
return number;
}
}
答案 0 :(得分:3)
创建一个toString和一个fromString方法。或者甚至更好,使用GSON。
Gson是一个Java库,可用于将Java对象转换为其JSON表示。
答案 1 :(得分:2)
由于你的Person已经是Serializabe,你可以在byteArrayOutpuStream之上使用ObjectOutputStream。并传输字节数组。 如果您的服务器知道类Person(因为它已连接您的jar)。它可以读取字节数组并调用ObjectInputStream。
示例:
List<Person> persons = new ArrayList<Persons>();
// TODO fill persons.
ByteArrayOutputStream bao = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bao);
oos.writeObject(persons);
oos.close();
byte[] byteToTransfer = oos.getBytes();
// transfer
在服务器端:
byte[] bytesFromSocket = ....;
ByteArrayInputStream bis = new ByteArrayInputStream(bytesFromSocket);
ObjectInputStream ois = new ObjectOutputStream(bis);
List<Persons> persons = (List<Persons>) ois.readObject(persons);
一旦理解了这一点,请查看更完整的代码: