xml与Java对象的转换

来源:互联网 发布:linux wget https 404 编辑:程序博客网 时间:2024/05/01 00:58

1.xstream解析报文
XStreamComponent x = XStreamComponent.newInstance();
 x.processAnnotations(new Class[]{EquityExchangeDetail.class,PearTicketCustomerDTO.class,Date.class,Integer.class});
 EquityExchangeDetail ptd = (EquityExchangeDetail) x.fromXML(xml);

2.xstream封装报文
XStreamComponent xres = XStreamComponent.newInstance();
        xres.processAnnotations(new Class[]{TransResult.class});
  String result=xres.toXML(transResult);

3.
注解:
@XStreamAlias("customerInfo")   //报文中<customerInfo>节点对应类名“PearTicketCustomerDTO”
public class PearTicketCustomerDTO {

@XStreamAlias("idno")     //报文中<idno>节点对应类属性“idno”
 private String idno;

@XStreamOmitField
private Long ticketId;   //报文中无<ticketId>节点 ,解析时忽略类属性ticketId


4.方法比较
x.processAnnotations(new Class[]{PearTicketDTO.class}):读取类名注解
x.alias(new Class[]{PearTicketDTO.class}):不读取类名注解
5.解析报文
x.alias("Equities", List.class);--把报文节点<Equities>  转化为List对象
x.alias("Equity", Equity.class);--把报文节点<Equity> 转化为Equity类对象
List<Equity> equities = (List<Equity>) x.fromXML(xml);--开始转化

0 0