需要導入的包和項目如下:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZD9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVPNhVW0xGShZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jN0QDNxcTN1EjMykDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
User.java代碼:
public class User {
private String id;
private String name ;
private String age;
private String pwd;
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 getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + ", pwd=" + pwd + "]";
}
}
Test.java代碼
package com.test;
import com.test.domain.User;
import com.thoughtworks.xstream.XStream;
public class Test {
public static void main(String[] args) {
User user = new User();
user.setAge("11");
user.setId("1");
user.setName("zhangsan");
user.setPwd("123456");
XStream xml = new XStream();
String userXml = xml.toXML(user);
System.out.println("object to xml");
System.out.println(userXml);
System.out.println("=====================================");
System.out.println("xml to object");
User u = (User) xml.fromXML(userXml);
System.out.println(u);
}
}
運作結果:
object to xml
<com.test.domain.User>
<id>1</id>
<name>zhangsan</name>
<age>11</age>
<pwd>123456</pwd>
</com.test.domain.User>
=====================================
xml to object
User [id=1, name=zhangsan, age=11, pwd=123456]
這裡可以給輸出的xml起一個别名:
例如:下免得測試代碼:
package com.test;
import com.test.domain.User;
import com.thoughtworks.xstream.XStream;
public class Test {
public static void main(String[] args) {
User user = new User();
user.setAge("11");
user.setId("1");
user.setName("zhangsan");
user.setPwd("123456");
XStream xml = new XStream();
xml.alias("address", User.class);
String userXml = xml.toXML(user);
System.out.println("object to xml");
System.out.println(userXml);
System.out.println("=====================================");
System.out.println("xml to object");
User u = (User) xml.fromXML(userXml);
System.out.println(u);
}
}
運作結果:
object to xml
<address>
<id>1</id>
<name>zhangsan</name>
<age>11</age>
<pwd>123456</pwd>
</address>
=====================================
xml to object
User [id=1, name=zhangsan, age=11, pwd=123456]
這裡我們将user這個對象起了一個别名為address,其他的修改也是同理,如何要給屬性起别名就用
xml.aliasField("userid", User.class, "id");
這裡我們也可以用注解的方式來起别名:
測試代碼如下:
User.java代碼
package com.test.domain;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@XStreamAlias("user")
public class User {
@XStreamAlias("userId")
private String id;
private String name ;
private String age;
private String pwd;
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 getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + ", pwd=" + pwd + "]";
}
}
Test.java測試代碼如下:
package com.test;
import com.test.domain.User;
import com.thoughtworks.xstream.XStream;
public class Test {
public static void main(String[] args) {
User user = new User();
user.setAge("11");
user.setId("1");
user.setName("zhangsan");
user.setPwd("123456");
XStream xml = new XStream();
xml.processAnnotations(User.class);
String userXml = xml.toXML(user);
System.out.println("object to xml");
System.out.println(userXml);
System.out.println("=====================================");
System.out.println("xml to object");
User u = (User) xml.fromXML(userXml);
System.out.println(u);
}
}
測試結果如下:
object to xml
<user>
<userId>1</userId>
<name>zhangsan</name>
<age>11</age>
<pwd>123456</pwd>
</user>
=====================================
xml to object
User [id=1, name=zhangsan, age=11, pwd=123456]
@XStreamAlias注解可在類與屬性上使用設定名稱,相當于: xstream.alias("user", User.class);