本文共 2074 字,大约阅读时间需要 6 分钟。
package shangbo.xstream.example2;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(); xstream.alias("person", Person.class); // 自定义标签 xstream.alias("phone", PhoneNumber.class); // 自定义标签 xstream.aliasField("countrycode", PhoneNumber.class, "code"); // 自定义标签 // 将对象转成 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; }}
运行上面的程序得到如下结果,结果已经很不错了,但如果你不想要 phones 标签,我们只需要很简单的设置,你很快就会知道。
Security framework of XStream not initialized, XStream is probably vulnerable.shangbo.xstream.example2.Person@13eb8acf[firstname=Bo,lastname=Shang,address=shangbo.xstream.example2.Address@c81cdd1[state=LiaoNing,city=DaLian,streat=GaoXingQu],phones=[shangbo.xstream.example2.PhoneNumber@1fc2b765[code=86,number=0411-12345678], shangbo.xstream.example2.PhoneNumber@75881071[code=86,number=18912345678]]] Bo Shang LiaoNing DaLian GaoXingQu 86 0411-12345678 86 18912345678
– 更多参见:
– 声 明:转载请注明出处 – Last Updated on 2018-05-27 – Written by ShangBo on 2018-05-27 – End