JAVA 2018-06-11

spring定时功能(之前用qutaz感觉配置很多, 这种简单很多)


xstream解析xml( 暂时有两点疑问, 第一少些字段会报错(比如xml里面有3个字段, bean里面只映射两个), gson解析json不会这样. 第二 标签中有属性不知道怎么提取)

1 导入 xstream 的pom包

2, 建一个工具类(别处down下来的)

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class XStreamHandle {

    /**

          * 实体转xml字符串

        * @param obj

           * @return

         */

    public static String toXml(Object obj) {

        XStream xstream = new XStream(new DomDriver("utf8"));
        xstream.processAnnotations(obj.getClass()); // 识别obj类中的注解
        return xstream.toXML(obj);
        }

        /**
       * 字符串转实体
       * @param xmlStr
       * @param cls
         * @return
       */

    public static <T> T toBean(String xmlStr, Class<T> cls) {
        XStream xstream = new XStream(new DomDriver());
        xstream.processAnnotations(cls);
        @SuppressWarnings("unchecked")
        T t = (T) xstream.fromXML(xmlStr);
        return t;
        }
}

3, 建好oop映射bean, 加号注解 注解里面的参数必须和xml里面的属性名一致, 区分大小写

@XStreamAlias("Order")
public class Order {

    @XStreamAlias("LatestShipDate")
    private String LatestShipDate;

    @XStreamAlias("OrderType")
    private String OrderType;

    @XStreamAlias("PurchaseDate")
    private String PurchaseDate;

    @XStreamAlias("IsReplacementOrder")
    private String IsReplacementOrder;

    @XStreamAlias("LastUpdateDate")
    private String LastUpdateDate;

    @XStreamAlias("AmazonOrderId")
    private String AmazonOrderId;

    @XStreamAlias("BuyerEmail")
    private String BuyerEmail;

    @XStreamAlias("NumberOfItemsShipped")
    private String NumberOfItemsShipped;

4,直接开始调用(如果有多层,直接调最上层父类, 可以直接把下面的之类 . 出来)

 Order order = XStreamHandle.toBean(xml, Order.class);
        System.out.println(Order.getId());

猜你喜欢

转载自blog.csdn.net/qq_34319145/article/details/80648468