栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 其他 > xml语言

XStream实现Bean与xml互转的代码示例

xml语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

XStream实现Bean与xml互转的代码示例

一、导入jar包

com.thoughtworks.xstreamxstream1.4.8

二、重要注解说明

@XStreamAlias 定义别名

@XStreamAsAttribute 定义为属性

@XStreamOmitField 忽略

@XStreamConverter 处理日期格式

@XStreamImplicit(itemFieldName = "roles") 处理List

三、实例

1、定义JavaBean

import java.util.Date;import java.util.List;import com.thoughtworks.xstream.annotations.XStreamAlias;import com.thoughtworks.xstream.annotations.XStreamAsAttribute;import com.thoughtworks.xstream.annotations.XStreamConverter;import com.thoughtworks.xstream.annotations.XStreamImplicit;import com.thoughtworks.xstream.annotations.XStreamOmitField;import com.tzz.util.xml.DateConverter;@XStreamAlias("user")public class User {@XStreamAsAttributeprivate Integer id;private String name;@XStreamOmitFieldprivate int age;private String sex;@XStreamConverter(value = DateConverter.class)private Date birthday = new Date();@XStreamImplicit(itemFieldName = "roles")private List roles;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public List getRoles() {return roles;}public void setRoles(List roles) {this.roles = roles;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}}
import com.thoughtworks.xstream.annotations.XStreamAlias;@XStreamAlias("role")public class Role {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

2、转换工具类

import java.io.Writer;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import org.dom4j.Element;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.core.util.QuickWriter;import com.thoughtworks.xstream.io.HierarchicalStreamWriter;import com.thoughtworks.xstream.io.xml.PrettyPrintWriter;import com.thoughtworks.xstream.io.xml.XppDriver;public class XStreamXmlUtil {@SuppressWarnings("unchecked")public static  T xmlToBean(String xml, Class clazz) {XStream xstream = new XStream();xstream.registerConverter(new DateConverter());xstream.autodetectAnnotations(true);xstream.processAnnotations(clazz);xstream.setClassLoader(clazz.getClassLoader());return (T) xstream.fromXML(xml);}public static String beanToXml(Object bean) {//return "" + new XStream().toXML(bean);XStream xstream = new XStream();xstream.registerConverter(new DateConverter());xstream.autodetectAnnotations(true);return xstream.toXML(bean);}}

3、测试类

import java.util.ArrayList;import java.util.Date;import java.util.List;import org.junit.Test;import com.tzz.test.util.xml.entity.Role;import com.tzz.test.util.xml.entity.User;import com.tzz.util.xml.XStreamXmlUtil;public class TestXStreamXmlUtil {@Testpublic void testBeanToXml() {try {User user = new User();user.setId(1);user.setName("Test");user.setAge(20);user.setSex("1");user.setBirthday(new Date());Role role = new Role();role.setId(1);role.setName("角色1");Role role2 = new Role();role2.setId(2);role2.setName("角色2");List roles = new ArrayList();roles.add(role);roles.add(role2);user.setRoles(roles);String xml = XStreamXmlUtil.beanToXml(user);System.out.println(xml);} catch (Exception e) {e.printStackTrace();}}@Testpublic void testXmlToBean() {String xml =   ""+  "Test"+  "1"+  "2016-03-10 16:12:46"+  ""+    "1"+    "角色1"+  ""+  ""+    "2"+    "角色2"+  ""+   "";User user = XStreamXmlUtil.xmlToBean(xml, User.class);System.out.println(user.getId() + "--" + user.getName());List roles = user.getRoles();for (Role r : roles) {System.out.println(r.getName());}}}

4、测试结果

4.1、运行testBeanToXml方法

  Test  1  2016-03-10 17:35:41      1    角色1        2    角色2  

4.2、运行testXmlToBean方法

1--Test角色1角色2

以上就是XStream实现Bean与xml互转的代码示例的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号