我想在Java中序列化一个匿名对象但是由于序列化我总是得到null,这是我正在尝试的:
public class User{
private String login;
private String password;
private String email;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public void Serialize() throws ParseException, IOException {
Serializable obj = new Serializable(){
public final String login = getLogin();
public final String email= getEmail();
};
DefaultHttpClient client = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(Home.url);
StringEntity stringEntity = new StringEntity(new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create().toJson(obj));
System.out.println(EntityUtils.toString(stringEntity));
//Here I'm getting null as result
//.......
}
}
我试图创建一个匿名对象来过滤我不想将它们发送到服务器端的字段。 在c#序列化匿名对象json对我来说很好,但在java中我不知道它为什么不起作用!
答案 0 :(得分:4)
责备不是java.io.Serializable,而是你的Json库!
来自https://sites.google.com/site/gson/gson-user-guide#TOC-Finer-Points-with-Objects:
内部类,匿名类和本地类中的外部类对应的字段将被忽略,不包括在序列化或反序列化中
顺便说一下。你不需要" Serializables"," Objects"也这样做,但请使用 命名为,而不是匿名。