XStream 是一个轻量级的、简单易用的开放源代码Java™库,用于将 Java 对象序列化为 XML 或者再转换回来
XStream 对象相当Java对象和XML之间的转换器,转换过程是双向的。创建XSteam对象的方式很简单,只需要new XStream()即可。
Java 到xml,用toXML()方法。
Xml到Java,用fromXML()方法。
在没有任何设置默认情况下,java到xml的映射,是java成员名对应xml的元素名,java类的全名对应xml根元素的名字。而实际中,往往是xml和java类都有了,要完成相互转换,必须进行别名映射。
XStream 的编码:
本身并没有实现编码,必须依靠java.io.Writer来实现输出编码的转换。
XStream 的常用方法
xstream.omitField(mytest.class,"name");定义某一个属性的值不进行xml序列化。
xstream.alias("cat", Cat.class); 对某一个类进行别名定义
xstream.aliasField("age",Cat.class, "mAge");对某一个类的属性进行别名定义。
xstream.useAttributeFor(String.class);对所有String类型的字段定义为属性tag显示
xstream.useAttributeFor("name".String.class);对所有String类型的字段名成为name 定义为属性tag显示
package com.ljh.bean;
public class Address {
private int id;
private String addressName;
public Address(){}
public Address(int id, String addressName) {
this.id= id;
this.addressName= addressName;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id= id;
}
public String getAddressName() {
return addressName;
}
public void setAddressName(String addressName) {
this.addressName= addressName;
}
}
package com.ljh.bean;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class Person {
private int id;
private String name;
private int age;
private String birthday;
private List<Address> addresses = new ArrayList<Address>();
private Date date = new Date();
public Person(int id, String name, int age,String birthday) {
this.id= id;
this.name= name;
this.age= age;
this.birthday= birthday;
}
public List<Address> getAddresses() {
return addresses;
}
public void setAddresses(List<Address> addresses) {
this.addresses= addresses;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date= date;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday= birthday;
}
public int getId() {
return id;
}
public void setId(int 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 void add(Address address){
addresses.add(address);
}
}
package com.ljh.xstream;
import java.io.PrintWriter;
import com.ljh.bean.Address;
import com.ljh.bean.Person;
import com.thoughtworks.xstream.XStream;
public class XStreamTest {
public static void main(String[] args) throws Exception {
Address address1 = new Address(1,"北京");
Address address2 = new Address(2,"天津");
Address address3 = new Address(3,"上海");
Person p = new Person(1,"ljh",38,"2111-11-11 11:11");
p.add(address1);
p.add(address2);
p.add(address3);
XStream xstream = new XStream();
//对某一个类进行别名定义
xstream.alias("地址",Address.class);
xstream.alias("联系人",Person.class);
//对某一个类的属性进行别名定义
xstream.aliasField("编号",Person.class, "id");
xstream.aliasField("姓名",Person.class, "name");
xstream.aliasField("年龄",Person.class, "age");
xstream.aliasField("联系方式",Person.class, "addresses");
xstream.aliasField("编号",Address.class, "id");
xstream.aliasField("名称",Address.class, "addressName");
xstream.aliasField("生日",Person.class, "birthday");
//定义某一个属性的值不进行xml序列化。
xstream.omitField(Person.class,"date");
//对id字段定义为属性显示
xstream.useAttributeFor(Person.class,"id");
xstream.useAttributeFor(Address.class,"id");
//对所有String类型的字段名成为name 定义为属性tag显示
//xstream.useAttributeFor("name".String.class);
xstream.toXML(p,new PrintWriter("c:\\person.xml","utf-8"));
}
}
分享到:
相关推荐
在java.beans包中,有两个好东西,XMLEncoder和XMLDecoder。从XML存取对象真是太费力气啦。做了小工具类,以后可以用用了。本文介绍了这两个可以把JAVA对象序列化保存为XML文件的工具类。
xml文件自动转成java对象工具,生成xsd文件,xsd转java
将一个java对象转换为xml文件,或者将一个xml文件转换为一个java对象。 (有人说需要jaxws-api-2.0.jar这个包,但是我做这个例子时没有用的,不过我还是把它附上,备用)
xml报文和java对象互相转换 相关jar包和测试代码,可以与castor插件java对象和XML自动绑定maping文件生成和java对象一键生成工具1.2(https://download.csdn.net/download/kemoing/10864595)完美配合使用
该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用...
使用java jdk的JAXB技术实现xml与java对象互相转化代码教程: JDK中JAXB相关的重要Class和Interface:(来源于百度百科JAXB) •JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。 •Marshaller接口,将Java...
本示例实现将xml数据转换为Java对象, 在这里使用org.xml.sax.helpers.DefaultHandler的子类处理XML 运行前要将raw目录下的xml 文件通过DDMS透视图中导入到摸拟器的SD卡中
该例子是将xml文件映射为java对象的例子。 commons-betwixt-0.8.jar
将XML与Java对象的转化方法封装到工具类当中,举了几个例子说明如何让XML与Java对象互相转换。
使用 XStream 不用任何映射就能实现多数 Java 对象的序列化。在生成的 XML 中对象名变成了元素名,类中的字符串组成了 XML 中的元素内容。使用 XStream 序列化的类不需要实现 Serializable 接口。XStream 是一种序列...
java中对象与xml转换,实例带完整源码
JaxbContext生成xml文件或java类对象转化注解参考文档
NULL 博文链接:https://zw7534313.iteye.com/blog/2422138
解析web-config.xml文件,并将里面的元素转换成对应的JAVA对象
winform窗口实现将XML文件内容转换成object对象类型,以及object对象转XML
该工具用于自动解析xml文件,根据标准的xml文件自动生成对应的javabean
通过XStream实现互转,IDEA开发,需加装依赖的JAR包
利用XStream方法 将xml配置文件与java对象的互换,可用于不同数据表空间的数据同步等信息。强大的工具
3、根据bean对象以及bean的所有属性值生成xml文件。 String bean2xml = XbeanUtil.bean2xml(bean, null); 使用前请将附件jar包放入classpath。 如有任何疑问,请联系coynnbai@163.com。源代码包及详细使用文档...
文档对象模型是HTML和XML文档的编程接口规范,它与平台和语言是无关的,因而可以用各种语言在各种平台上实现。该模型定义了THML和XML文件在...通过对XML文件的解析处理,XML文件中的元素便转化为DOM文档中的节点对象。