java与xml转换 — XStreamAlias详解编程语言
2023-06-13 09:11:49 时间
简化的API;
无映射文件;
高性能,低内存占用;
整洁的XML;
不需要修改对象;支持内部私有字段,不需要setter/getter方法
提供序列化接口;
自定义转换类型策略;
Transport转换
Persistence 持久化对象
Configuration 配置
Unit Tests 单元测试
Interface服务之间XML消息的交互
实体类
import com.thoughtworks.xstream.annotations.XStreamAlias; * @author ceshi * @Title: Student * @ProjectName ceshi * @Description: TODO * @date 2018/6/2817:29 @XStreamAlias("Student_Message") public class Student { private String id; private String name; private String age; private String achievement; public Student(String id,String name,String age,String achievement){ this.id = id; this.name = name; this.age = age; this.achievement = achievement; public String getId() { return id; public void setId(String id) { this.id = id; public String getName() { return name; public void setName(String name) { this.name = name; public String getAge() { return age; public void setAge(String age) { this.age = age; public String getAchievement() { return achievement; public void setAchievement(String achievement) { this.achievement = achievement; @Override public String toString() { return "Student{" + "id=" + id + / + ", name=" + name + / + ", age=" + age + / + ", achievement=" + achievement + / + }; }
工具类
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; * @author ceshi * @Title: XStreamUtils * @ProjectName ceshi * @Description: TODO * @date 2018/6/2817:38 public class XStreamUtils { /** * 将Object转换为xml * @param obj 转换的bean * @return bean转换为xml public static String objectToXml(Object obj) { XStream xStream = new XStream(); //xstream使用注解转换 xStream.processAnnotations(obj.getClass()); return xStream.toXML(obj); /** * 将xml转换为T * @param T 泛型 * @param xml 要转换为T的xml * @param cls T对应的Class * @return xml转换为T 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); }
测试类
import org.junit.Test; * @author ceshi * @Title: JunitXStream * @ProjectName ceshi * @Description: TODO * @date 2018/6/2817:29 public class JunitXStream { @Test public void test(){ Student s = new Student("1","张三","18","90"); String xml = XStreamUtils.objectToXml(s); xml = " ?xml version=/"1.0/" encoding=/"UTF-8/"? "+xml; xml = xml.replaceAll("__","_"); System.out.println(xml); Student ss = XStreamUtils.xmlToObject(xml,Student.class); System.out.println(ss); }
结果:
pom:需要使用到 xstream-1.4.8.jar
dependency groupId com.thoughtworks.xstream /groupId artifactId xstream /artifactId version 1.4.8 /version /dependency
注意事项:
1.XStream有一些小bug,在定义别名中的下划线“_”转换为xml后会变成“__”这个符号,下划线问题可以用下面这个解决
XStream xStream = new XStream(new XppDriver(new XmlFriendlyNameCoder( _- , _ )));
也可以像测试类中用:replaceAll( __ , _ ); 替换掉
18540.html
cjavaxml相关文章
- XML转换_xml文件转化为excel格式
- java long string 转换_Java long 转成 String的实现[通俗易懂]
- java helloworld源代码_Java Hello World源代码剖析
- eclipse怎么导入java文件_Eclipse如何导入JAVA工程?如何将项目导入Eclipse中?
- java接口详解
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]
- 浅析Java多态_JAVA多态
- java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换
- 中的应用Java中MySQL的灵活运用(mysql在java代码)
- Java问题-java进程占用内存过高,排查原因详解编程语言
- Java下使用Redis进行高效缓存优化(Redis缓存java)
- 使用Redis和Java实现过期策略(redisjava过期)
- 如何使用Java备份Oracle数据库?(java备份oracle)
- 数据库Java编程修改Oracle数据库的实践(java修改oracle)
- Oracle XML转换为表格形式简单几步即可实现(oracle xml转表)
- JAVA遍历一个文件夹中的所有文件的小例子
- Java实现堆排序(Heapsort)实例代码