我是java spring mvc developer我有一个对象,我想将它存储在cookie中,但我不知道如何序列化对象来保存它 有人可以帮帮我吗?或者可以建议在cookie中存储对象的其他想法?
答案 0 :(得分:1)
Cookie的大小最多可达4Mb。这对于存储对象可能不是很有用。您应该考虑使用HTML5存储作为替代方案。
答案 1 :(得分:1)
您可以在cookie中以任何String格式描述对象。
为toString()
为您的对象构建自定义String
和构造函数。写入cookie ojectToSave.toString()
并从cookie构造中读取objectToLoad = new MyObject(cookieString)
。
实施例
public class MyObject(){
private String username;
private int rank;
private OtherObject otherObject;
//Constructors,getters,setters,rest of class
//...
public MyObject(String s){
this();
//Trim class delimiter ( )
String trimedStr = s.replaceAll("\(\\$", "").replaceAll("^\)\\", "");
//parse string
String[] components = trimedStr.split(",");
this.username = components[0];
this.rank = Integer.valueOf(components[1]);
//Otherobject should be constructed similar
this.otherobject = new OtherObject(components[2]);
}
public String toString(){
return "("+username+","+rank+","+otherObject.toString()+")";
}
}
我使用"(",")"
来分隔对象,但这不是必需的。如果OtherObject包含2个字符串值,它将如下所示:
(radu, 964 , ( string1 , string2 ) )
但如果您没有其他对象,则可以跳过"(",")"
或仅存储为一个列表
(radu, 964 , string1 , string2 )
并拥有this.otherobject = new OtherObject(components[2],components[3]);
使用JSON
format and Jackson
不必自己构建字符串格式(并在每次更改对象类定义时修改它)