本文共 3709 字,大约阅读时间需要 12 分钟。
package shangbo.xstream.example1;import java.util.ArrayList;import java.util.List;import com.thoughtworks.xstream.XStream;public class App { public static void main(String[] args) { // 实例化 XStream 对象 XStream xstream = new XStream(); // 将对象转成 xml String xml = xstream.toXML(newPerson()); System.out.println(xml); // 将 xml 转成对象 Person shangbo = (Person) xstream.fromXML(xml); System.out.println(shangbo); } private static Person newPerson() { Listphones = new ArrayList<>(); PhoneNumber phone = new PhoneNumber(); phone.setCode("86"); phone.setNumber("0411-12345678"); phones.add(phone); PhoneNumber cell = new PhoneNumber(); cell.setCode("86"); cell.setNumber("18912345678"); phones.add(cell); Address address = new Address(); address.setState("LiaoNing"); address.setCity("DaLian"); address.setStreat("GaoXingQu"); Person shangbo = new Person(); shangbo.setFirstname("Bo"); shangbo.setLastname("Shang"); shangbo.setAddress(address); shangbo.setPhones(phones); return shangbo; }}
运行上面的程序得到如下结果,结果不是令人太满意,如果我们可以定制标签的名字就完美了,别着急,你很快就是知道。
Security framework of XStream not initialized, XStream is probably vulnerable.shangbo.xstream.example1.Person@13eb8acf[firstname=Bo,lastname=Shang,address=shangbo.xstream.example1.Address@c81cdd1[state=LiaoNing,city=DaLian,streat=GaoXingQu],phones=[shangbo.xstream.example1.PhoneNumber@1fc2b765[code=86,number=0411-12345678], shangbo.xstream.example1.PhoneNumber@75881071[code=86,number=18912345678]]] Bo Shang LiaoNing DaLian GaoXingQu 86
0411-12345678 86
18912345678
package shangbo.xstream.example1;import java.util.List;import org.apache.commons.lang3.builder.ToStringBuilder;public class Person { private String firstname; private String lastname; private Address address; private Listphones; public String toString() { return ToStringBuilder.reflectionToString(this); } public String getFirstname() { return firstname; } public void setFirstname(String firstname) { this.firstname = firstname; } public String getLastname() { return lastname; } public void setLastname(String lastname) { this.lastname = lastname; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; } public List getPhones() { return phones; } public void setPhones(List phones) { this.phones = phones; }}
package shangbo.xstream.example1;import org.apache.commons.lang3.builder.ToStringBuilder;public class Address { private String state; private String city; private String streat; public String toString() { return ToStringBuilder.reflectionToString(this); } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreat() { return streat; } public void setStreat(String streat) { this.streat = streat; }}
package shangbo.xstream.example1;import org.apache.commons.lang3.builder.ToStringBuilder;public class PhoneNumber { private String code; private String number; public String toString() { return ToStringBuilder.reflectionToString(this); } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; }}
– 更多参见:
– 声 明:转载请注明出处 – Last Updated on 2018-05-27 – Written by ShangBo on 2018-05-27 – End