xstream 别名的用法<转>

XStream使用详解:alias、aliasField与useAttributeFor方法
本文深入解析XStream库中alias、aliasField和useAttributeFor方法的使用方法,通过示例展示如何在序列化过程中灵活运用这些方法,实现类名替换、属性名替代及将属性作为xml头信息的功能。

1.xstream的alias使用方法:

       1.1 作用:将序列化中的类全量名称,用别名替换。

       1.2  使用方法:xstream.alias("blog", Blog.class);

       1.3  示例:

            要序列化的类:

package test.xstream.test;

public class Author {

    private String name;
    public Author(String name) {
            this.name = name;
    }
    public String getName() {
            return name;
    }
}

        不使用别名alias时序列化出来的xml:

<test.xstream.test.Author>
  <name>name</name>
</test.xstream.test.Author>

使用别名alias时序列化出来的xml:

<Author>
  <name>name</name>
</Author>

2.xstream的aliasField

     2.1 作用:使用别名替代属性名
     2.2 使用方法:xstream.aliasField("author", Author.class, "name");

    2.3 示例:

不使用别名aliasField时序列化出来的xml:

<Author>
  <name>name</name>
</Author>

使用别名aliasField时序列化出来的xml:

<Author>
  <author>name</author>
</Author>

    3. xstream的useAttributeFor    

3.1 作用:将某一个类的属性,作为xml头信息的属性,而不是子节点    

3.2 使用方法:xstream.useAttributeFor(Author.class, "name");   

3.3  示例: 不使用别名useAttributeFor时序列化出来的xml:

<Author> <author>name</author> </Author>

使用别名useAttributeFor时序列化出来的xml:

<Author name="name"/>

    ps: 使用方法

    public static void main(String[] args) {
        XStream xstream = new XStream();
        xstream.alias("Author", Author.class);
//        xstream.aliasField("author", Author.class, "name");
        xstream.useAttributeFor(Author.class, "name");
        Author author =new Author("name");
        String xmlString =xstream.toXML(author);
        System.out.println(xmlString);
    }

几个相关网址:http://xstream.codehaus.org/alias-tutorial.html

http://blog.youkuaiyun.com/faye0412/article/details/6602144

 

原文链接:http://blog.youkuaiyun.com/subuser/article/details/21548227

转载于:https://www.cnblogs.com/tanglc/p/4439340.html

帮我把这段xml,用@Data注解成java bean实体,每个字段上都要加上@XStreamAlias注解 <FLIGHT> <FID>b59bb8fa48ad6edbf35f7f468019d06d</FID> <DATA_TYPE>操作类型:INSEERT、UPDATE、DELETE</DATA_TYPE> <FLIGHT_ID>0或者例如:ZH9847-2020-08-18-A</FLIGHT_ID> <AIRLINE_IATA>ZH</AIRLINES_IATA> <AIRLINE_ICAO>CSZ</AIRLINES_ICAO> <FLIGHT_NO>ZH9487</FLIGHT_NO> <DAP_AP>CTU</DAP_AP> <AAP_AP>JJN</AAP_AP> <FLINES>JJN,HGH,SJW</FLINES> <REG_NUMBER>B3207</REG_NUMBER> <FLIGHT_STATUS>0</FLIGHT_STATUS> <FLIGHT_DATE>20200820</FLIGHT_DATE> <PLAN_TAKEOFF_TIME>20200820153628<PLAN_TAKEOFF_TIME> <PLAN_LANDIN_TIME>20200820153628</PLAN_LANDIN_TIME> <ESTIMATED_TAKEOFF_TIME>20200820153628</ESTIMATED_TAKEOFF_TIME> <ESTIMATE_LANDIN_TIME>20200820153628</ESTIMATE_LANDIN_TIME> <REAL_TAKEOFF_TIME>20200820153628</REAL_TAKEOFF_TIME> <REAL_LANDIN_TIME>20200820153628</REAL_TAKEOFF_TIME> <FLY_DISTANCE>1302</FLY_DISTANCE> <DEP_STAND>22</DEP_STAND> <ARR_STAND>32</ARR_STAND> <TOUCH_DOWN_RUNWAY>03</TOUCH_DOWN_RUNWAY> <TAKE_OFF_RUNWAY>03</TAKE_OFF_RUNWAY> <DEP_GATE>09</DEP_GATE> <CHECKIN_COUNTER></CHECKIN_COUNTER> <CHECKIN_COUNTER2></CHECKIN_COUNTER2> <LUGGAGE_TURNTABLE>2DA</LUGGAGE_TURNTABLE> <LUGGAGE_TURNTABLE2>2DB</LUGGAGE_TURNTABLE2> <DORI>0</DORI> <MISSION_PROPERTY>W/Z</MISSION_PROPERTY> <IS_SHARE>0</IS_SHARE> <SHARE_MAIN_FLIGHT>ZH8701</SHARE_MAIN_FLIGHT> <IS_VIP>0</IS_VIP> <ALNAP></ALNAP> <FIRST_POINT></FIRST_POINT> <AIRWAY_POINTS> </AIRWAY_POINTS> <ROUTE></ROUTE> <DELAY_REASON_PUID>0</DELAY_REASON_PUID> <DELAY_REASON_CLIENT></DELAY_REASON_CLIENT> <DELAY_TYPE></DELAY_TYPE> <DELAY_REASON></DELAY_REASON> </FLIGHT>
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值