XStream實現xml和java對象之間的互相轉換,同理JSON也可以
來源:程序員人生 發布時間:2014-09-24 19:54:40 閱讀次數:2942次
首先去官網下載響應JAR包
http://xstream.codehaus.org/index.html
最少需要兩個jar包,一個xstream.jar,一個是xmlpull.jar
首先來看下java對象到xml的轉換
package xml;
class PhoneNumber {
private int code;
private int number;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
}
public class Person {
private String username;
private int age;
private PhoneNumber pn;
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 PhoneNumber getPn() {
return pn;
}
public void setPn(PhoneNumber pn) {
this.pn = pn;
}
}
以上是一個普通的java對象
package xml;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.StaxDriver;
public class XmlUtils {
private static XStream xs = new XStream(new StaxDriver());
public static String objToXml(Object obj) {
//xs.aliasPackage(name, pkgName);
return xs.toXML(obj);
}
public static void main(String[] args) {
Person p = new Person();
p.setAge(26);
p.setUsername("chiwei");
PhoneNumber pn = new PhoneNumber();
pn.setCode(188);
pn.setNumber(67101080);
p.setPn(pn);
xs.alias("person", Person.class);
String xml = objToXml(p);
Person per = (Person)xs.fromXML(xml);
System.out.println(xml);
System.out.println(per.getUsername());
}
}
以上代碼,先是生成一個對象,給各個屬性賦值,然后調用toXML將對象轉換為xml格式的普通文本,注意在轉換前調用了alias目的是為了將xml.Person重命名為person
<?xml version="1.0" ?><person><username>chiwei</username><age>26</age><pn><code>188</code><number>67101080</number></pn></person>
這里xstream實例化時候傳入了StaxDriver表示A driver using the StAX API to create XML reader and writer.
如果你使用xpp3driver,你需要引入該jar包
后面則根據上面轉換后的xml繼續轉換成相應的對象Person
<?xml version="1.0" ?><person><username>chiwei</username><age>26</age><pn><code>188</code><number>67101080</number></pn></person>
chiwei
很簡單
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈