@XStreamAlias的使用案例

最近开发webService接口,用到了@XStreamAlias,在这里记录下来,下面主要通过一个简单的demo来说明使用方法。

demo地址:https://download.csdn.net/download/junge1545/10547577

一.XStream是个很强大的工具,能将java对象和xml之间相互转化。xstream不在意java类中成员变量是私有还是公有,也不在乎是否有默认构造函数。它调用方式也非常简单:从xml对象转化为java对象,使用fromXML()方法;从java对象序列化为xml,toXML()即可,很方便。xstream也支持注解方式,这些都是为了简化输出而设计。

二.上代码

1.创建了一个实体类

package bean;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/** 
 * @author 作者 E-mail: 
 * @version 创建时间:2018年7月17日 下午5:00:38 
 * 类说明 
 */
@XStreamAlias("User")
public class User {

	@XStreamAlias("name")
	private String name;
	@XStreamAlias("age")
	private String age;
	@XStreamAlias("SEX")
	private String sex;
	public User(String name, String age, String sex) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}
}

 

2.创建一个工具类XstreamUtil 

package util;
/** 
 * @author 作者 E-mail: 
 * @version 创建时间:2018年7月17日 下午5:04:49 
 * 类说明 
 */
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class XstreamUtil {
	/**
	 * 将xml转换为bean
	 * @param <T> 泛型
	 * @param xml 要转换为bean的xml
	 * @param cls bean对应的Class
	 * @return xml转换为bean
	 */
	public static <T> T xmlToObject(String xml, Class<T> cls){
		XStream xstream = new XStream(new DomDriver());
		//xstream使用注解转换
		xstream.processAnnotations(cls);
		return (T) xstream.fromXML(xml);
	}

}

3.测试

public class Test {

	public static void main(String[] args) {
		
		//xml转对象
		String xml="<User>\n"
				+" <name>peter</name> \n"
				+"  <age>13</age> \n"
				+"  <SEX>男</SEX> \n"
				+" </User>";
		User user = XstreamUtil.xmlToObject(xml, User.class);
		System.out.println(user);
		
		//对象转xml
		User user2 = new User("java","10","女");
		XStream xstream = new XStream();
		xstream.autodetectAnnotations(true);//自动检测模式,默认
		String xml2 = xstream.toXML(user2);
		System.out.println(xml2);
		
	}
}

输出结果

------------xml转成对象-----------
User [name=peter, age=13, sex=男]
--------------对象转成xml-----------
<User>
  <name>java</name>
  <age>10</age>
  <SEX>女</SEX>
</User>

后面再说其他注解

  • 17
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值