将pojo转化为XML字符串

所需要的Maven 所需要额依赖

com.thoughtworks.xstream XStream 1.4.4

//将XML的字符串转化为pojo,参数为XML字符串,返回值为pojo类

         XStream xStream = new XStream();
         //root为根节点的名字   root类为包括所有 字段 和get方法的类
         xstream.alias("Root",Root.class);
         //head根节点下子节点的名字 head类为 子节点下所有节点名字的字段
         xstream.alias("head", Head.class);
         //参数为字符串 返回的是object泛型  一般用root类(包括所属性方法的类)
          Root root =(root) xStream.fromXML("")

//将pojo转化为XML的字符串, 参数为pojo类,返回参数为XML字符串

    XStream xStream1 = new XStream();
    xStream1.alias("root",Root.class);
    xStream1.alias("head", Head.class);
    xStream1.alias("body", Body.class);
    Root root = (Root) xStream1.fromXML(s1);
    System.out.println(root);

全部的代码测试类

@Test
public void s1(){
Body body = new Body();
body.setNumber1(“111”);
body.setNumber2(“222”);
body.setNumber3(“333”);
Heard heard = new Heard();
heard.setCmd(“1111”);
Root pojo = new Root(heard,body);
XStream xStream = new XStream();
//改变根节点名字
xStream.alias(“root”,pojo.getClass());
//封装为xml字符串
String s1 = xStream.toXML(pojo);
System.out.println(s1);
String xml="\n" +
" <head class=“Heard”>\n" +
" 1111\n" +
" \n" +
" \n" +
" 111\n" +
" 222\n" +
" 333\n" +
" \n" +
“”;
XStream xStream1 = new XStream();
xStream1.alias(“root”,Root.class);
xStream1.alias(“head”, Head.class);
xStream1.alias(“body”, Body.class);
Root root = (Root) xStream1.fromXML(s1);
System.out.println(root);
}

对应的pojo类

//@Data注解为lombok的插件 没有插件 自己手动加上get set toString 方法
@Data
public class Root {
private Object head;
private Object body;
public Root() {
}
public Root(Object head, Object body) {
this.head = head;
this.body = body;
}
}
@Data
public class Head {
private String cmd;
}
@Data
public class Body {
private String number1;
private String number2;
private String number3;
}
返回的结果

去掉class属性 和添加 注解

    xStream.aliasSystemAttribute(null, "class"); // 去掉 class 属性
    //@XStreamAlias("别名")可以放在类上和属性上
    xStream.autodetectAnnotations(true);
    //忽略多余的便签
    xStream.ignoreUnknownElements();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值