Xstream(Java)未正确地将Xml字符串反序列化为对象
我有以下XML字符串,我正试图将其反序列化为一个对象,但最终结果不正确 XML字符串为:Xstream(Java)未正确地将Xml字符串反序列化为对象,java,xml,xstream,Java,Xml,Xstream,我有以下XML字符串,我正试图将其反序列化为一个对象,但最终结果不正确 XML字符串为: ”; 我尝试反序列化到的对象是: public class Header implements Serializable { private static final long serialVersionUID = 1L; private List<Session> sessions = new ArrayList<Session>(); private List<Sequ
”;
我尝试反序列化到的对象是:
public class Header implements Serializable {
private static final long serialVersionUID = 1L;
private List<Session> sessions = new ArrayList<Session>();
private List<Sequence> sequences = new ArrayList<Sequence>();
public List<Session> getSession() {
return sessions;
}
public void setSession(Session session) {
this.sessions.add(session);
}
public List<Sequence> getSequence() {
return sequences;
}
public void setSequence(Sequence sequence) {
this.sequences.add(sequence);
}
}
反序列化代码为:
XStream xstream = new XStream();
xstream.alias("Header", Header.class);
xstream.alias("Session", Session.class);
xstream.alias("Sequence", Sequence.class);
xstream.addImplicitCollection(Header.class, "sessions");
xstream.addImplicitCollection(Header.class, "sequences");
xstream.useAttributeFor(Session.class, "value");
xstream.useAttributeFor(Sequence.class, "value");
System.out.println("msg: " + msg);
Header result = (Header) xstream.fromXML(msg);
当我对结果对象执行toString()
时,我看到:
Header [sessions=null, sequences=[Sequence [value=bbb-mySeq], Session [value=aaa-myValue]]]
如您所见,顺序中不应有会话。提前感谢您的帮助。将您的呼叫更改为addImplicitCollection:
xstream.addImplicitCollection(Header.class, "sessions", Session.class);
xstream.addImplicitCollection(Header.class, "sequences", Sequence.class);
波阿斯(Boaz)我真希望我能给出不止一个+1的答案……它回答了我几个小时来一直试图解决的一个问题。:)
xstream.addImplicitCollection(Header.class, "sessions", Session.class);
xstream.addImplicitCollection(Header.class, "sequences", Sequence.class);