您需要使用
ToAttributedValueConverter
。使用如下所示的xstream注释很容易做到这一点:
@XStreamAlias("Object")
@XStreamConverter(value = ToAttributedValueConverter.class, strings = { "value" })
public class ResponseObject {
@XStreamAlias("Type")
private String type;
private String value;
public ResponseObject() {
}
public String getType() {
return type;
}
public String getValue() {
return value;
}
}
@XStreamAlias("Objects")
public class ParentResponseObject {
@XStreamImplicit
private final List <ResponseObject> responseObjects = new ArrayList<ResponseObject>();
public ParentResponseObject() {
}
public List<ResponseObject> getResponseObjects() {
return responseObjects;
}
}
主要方法:
XStream xStream = new XStream();
xStream.processAnnotations(ParentResponseObject.class);
ParentResponseObject parent = (ParentResponseObject)xStream.fromXML(file);
for (ResponseObject o : parent.getResponseObjects()) {
System.out.println(o.getType() + ":" + o.getValue());
}