xml 和javabean互转

 xml--> javabean

<a desc="测试xml转bean">
    <b>1</b>
    <c>a2</c>
    <d>2020-11-01 21:12:30 CST</d>
    <z>2020-11-01T22:52:19</z>
    <e>0.12</e>
    <f></f>
    <g>23</g>
    <l>
        <r>wqe</r>
        <r>asd</r>
        <r>zxc</r>
    </l>
    <k>
        <m>
            <t>ppp</t>
            <y>ooo</y>
        </m>
        <m>
            <t>iii</t>
            <y>uuu</y>
        </m>
    </k>
</a>
@XStreamAlias("m")
public class m {
    @XStreamAlias("t")
    String t;
    @XStreamAlias("y")
    String y;
}






import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import lombok.Data;
import lombok.ToString;
import org.junit.Test;

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;


@XStreamAlias("a")
@Data
@ToString
public class a {

    /**
     * a标签内的属性
     */
    @XStreamAsAttribute
    String desc;

    /**
     * 指定标签名称
     */
    @XStreamAlias("b")
    int b;
    @XStreamAlias("g")
    Integer g;
    @XStreamAlias("c")
    String c;
    @XStreamAlias("d")
    Date d;
    @XStreamAlias("z")
    LocalDateTime z;
    @XStreamAlias("e")
    double e;
    @XStreamAlias("f")
    double f;
    @XStreamAlias(value = "l", impl = List.class)
    List<String> uu;

    @XStreamAlias(value = "k", impl = List.class)
    List<m> fg;

    @Test
    public void test() {

        String xml = "上面的xml内容";
        XStream xStream = new XStream();
        // 开启扫描注解 通过注解方式 反序列化成java对象
        xStream.processAnnotations(a.class);
        // 针对<r> 标签  ,否则无法识别<r>
        xStream.alias("r", String.class);

        // 针对标签<f></f> 标签空值 属性类型Double 专门做的转换器, 日期 字符串 同理
        xStream.registerConverter(new DoubleConventy());
        a a = (a) xStream.fromXML(xml);
        System.out.println(a.toString());

    }
   
}


//Double转换器

public class DoubleConventy extends com.thoughtworks.xstream.converters.basic.DoubleConverter {

    @Override
    public Object fromString(String str) {

        if(StringUtils.isBlank(str)){
            return 0.0;
        }

        return super.fromString(str);
    }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值