apache commons betwixt
标签:配置 编码 apache apach over etag close arraylist exce
一、引入Maven依赖
dependency>
groupId>commons-betwixtgroupId>
artifactId>commons-betwixtartifactId>
version>0.8version>
dependency>
二、常用API说明
以下使用到一些BO:
Person.java
public class Person {
private String username;
private int age;
private float stature;//身高
private boolean sex;//性别
private List list = new ArrayList();
private String[] friendsNames;
private Map maps = new HashMap();
private Address address;
public Person() {
}
public Person(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public float getStature() {
return stature;
}
public void setStature(float stature) {
this.stature = stature;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
@SuppressWarnings("unchecked")
public List getList() {
return list;
}
@SuppressWarnings("unchecked")
public void setList(List list) {
this.list = list;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Map getMaps() {
return maps;
}
public void setMaps(Map maps) {
this.maps = maps;
}
public String[] getFriendsNames() {
return friendsNames;
}
public void setFriendsNames(String[] friendsNames) {
this.friendsNames = friendsNames;
}
@Override
public String toString() {
return "Person{" +
"username=‘" + username + ‘\‘‘ +
", age=" + age +
", address=" + address +
‘}‘;
}
}
Address.java
public class Address {
private String email;
private List telephone;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public List getTelephone() {
return telephone;
}
public void setTelephone(List telephone) {
this.telephone = telephone;
}
@Override
public String toString() {
return "Address{" +
"email=‘" + email + ‘\‘‘ +
", telephone=" + telephone +
‘}‘;
}
}
常用API如下:
import java.io.StringReader;
import java.io.StringWriter;
import org.apache.commons.betwixt.io.BeanReader;
import org.apache.commons.betwixt.io.BeanWriter;
/**
* Betwixt XML与Java对象之间相互转换.
* 常用类:
* ① BeanReader XML转Java对象
* ② BeanWriter Java对象转XML
*/
public class BetwixtDemo {
private static final String XML_HEADER = "\n";
private static void xmlToJavaBean() {
try {
// 先创建一个XML,在这里我们硬编码了一段XML内容
StringReader xmlReader = new StringReader(XML_HEADER + "25James Smith");
//创建BeanReader
BeanReader beanReader = new BeanReader();
//配置reader
beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);
beanReader.getBindingConfiguration().setMapIDs(false);
//注册beans,以便betwixt知道XML将要被转化为一个什么Bean
beanReader.registerBeanClass("person", Person.class);
//现在我们对XML进行解析
Person person = (Person) beanReader.parse(xmlReader);
//输出结果
System.out.println(person.toString());
} catch (Exception e) {
System.out.println("xmlToJavaBean Error");
e.printStackTrace();
}
}
private static void javaBeanToXml() {
try {
// 先创建一个StringWriter,我们将把它写入为一个字符串
StringWriter outputWriter = new StringWriter();
// Betwixt在这里仅仅是将Bean写入为一个片断
// 所以如果要想完整的XML内容,我们应该写入头格式
outputWriter.write(XML_HEADER);
// 创建一个BeanWriter,其将写入到我们预备的stream中
BeanWriter beanWriter = new BeanWriter(outputWriter);
// 配置betwixt
// 更多详情请参考java docs 或最新的文档
beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);
beanWriter.getBindingConfiguration().setMapIDs(false);
beanWriter.enablePrettyPrint();
// 如果这个地方不传入XML的根节点名,Betwixt将自己猜测是什么
// 但是让我们将例子Bean名作为根节点吧
Person person = new Person();
person.setUsername("张三");
person.setAge(25);
// 默认以类名为标签,也可以指定
//beanWriter.write(person);
beanWriter.write("person", person);
//输出结果
System.out.println(outputWriter.toString());
// Betwixt写的是片断而不是一个文档,所以不要自动的关闭掉writers或者streams,
//但这里仅仅是一个例子,不会做更多事情,所以可以关掉
outputWriter.close();
} catch (Exception e) {
System.out.println("javaBeanToXml Error");
e.printStackTrace();
}
}
public static void main(String[] args) {
//BetwixtDemo.xmlToJavaBean();
BetwixtDemo.javaBeanToXml();
}
}
apache commons betwixt
标签:配置 编码 apache apach over etag close arraylist exce
原文地址:https://www.cnblogs.com/myitnews/p/13873030.html
评论