package foo; import java.util.Date; import java.util.List; import com.dyuproject.protostuff.Tag; public class Person { @Tag(alias="username", value = 1) private String name; @Tag(alias="Motto", value = 2) private String motto ; @Tag(alias="gender", value = 3) private Gender gender = Gender.MALE; @Tag(alias="userlist1", value = 4) private List<User> userlist ; @Tag(alias="date", value = 5) private Date date ; enum Gender { MALE(1) , FEMALE(2); private Gender(int value){ this.value = value ; } private int value; public String toString(){ return super.toString()+"("+value+")"; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMotto() { return motto; } public void setMotto(String motto) { this.motto = motto; } public Gender getGender() { return gender; } public void setGender(Gender gender) { this.gender = gender; } public List<User> getUserlist() { return userlist; } public void setUserlist(List<User> userlist) { this.userlist = userlist; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } }
package foo; public class User { private String firstName; private String lastName; private String email; // private List<User> friends; public User() { } public User(String email) { this.email = email; } 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 String getEmail() { return email; } public void setEmail(String email) { this.email = email; } // public List<User> getFriends() { // return friends; // } // // public void setFriends(List<User> friends) { // this.friends = friends; // } }
package foo; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.dyuproject.protostuff.Schema; import com.dyuproject.protostuff.XmlIOUtil; import com.dyuproject.protostuff.runtime.RuntimeSchema; import foo.Person.Gender; public class PSTest { /** * @param args */ public static void main(String[] args) { Person person = new Person(); person.setName("John Doe"); person.setMotto("Speed kills!"); person.setGender(Gender.MALE); person.setDate(new Date()); List<User> userlist = new ArrayList<User>(); for(int i =0 ;i<10; i++){ User user = new User(); user.setEmail("cndone@gmail"+i); user.setFirstName("bie"+i); user.setLastName("哈哈"+i); userlist.add(user); } person.setUserlist(userlist); long begin = System.nanoTime(); Schema<Person> schema = RuntimeSchema.getSchema(Person.class); byte[] xml = XmlIOUtil.toByteArray(person, schema); String str = ""; try { str = new String(xml, "UTF-8"); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(str); long mid = System.nanoTime(); System.out.println(mid-begin); Person f = new Person(); XmlIOUtil.mergeFrom(xml, f, schema); System.out.println(f.getName()); System.out.println( new SimpleDateFormat("yyyy-MM-dd").format(f.getDate())); long end = System.nanoTime(); System.out.println(end-mid); } }
package foo; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; import foo.Person.Gender; public class XStreamTest { /** * @param args */ public static void main(String[] args) { Person person = new Person(); person.setName("John Doe"); person.setMotto("Speed kills!"); person.setGender(Gender.MALE); person.setDate(new Date()); List<User> userlist = new ArrayList<User>(); for(int i =0 ;i<10; i++){ User user = new User(); user.setEmail("cndone@gmail"+i); user.setFirstName("bie"+i); user.setLastName("哈哈"+i); userlist.add(user); } person.setUserlist(userlist); /**bean 2 XML*/ long begin = System.nanoTime(); XStream xstream = new XStream(new DomDriver()); xstream.alias("Person", Person.class); xstream.alias("User", User.class); String str = xstream.toXML(person); System.out.println(str); long mid = System.nanoTime(); System.out.println(mid-begin); /**XML 2 BEAN*/ Person f = (Person) xstream.fromXML(str); System.out.println(f.getName()); System.out.println( new SimpleDateFormat("yyyy-MM-dd").format(f.getDate())); long end = System.nanoTime(); System.out.println(end-mid); } }
测试结果:
<!--StartFragment -->参考:
相关推荐
XStream是一个常用的Java对象和XML相互转换的工具。近日XStream官方发布安全更新,修复了XStream 反序列化漏洞(CVE-2020-26258、CVE-2020-26259)。攻击者通过构造恶意的XML文档,可绕过XStream的黑名单,触发反...
XStream 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar 最齐全的xstream1.4.8.jar ...
* XStream 的性能优化可以满足高性能和高可用性的业务需求。 六、高可用性 * Oracle Database XStream 支持高可用性架构,能够确保数据捕获和事件处理的连续性。 * XStream 可以与 Oracle 数据库的高可用性机制...
《XStream的高级用法与自定义输出结构详解》 XStream是一款强大的Java库,用于将Java对象序列化为XML,以及将XML反序列化回Java对象。它以其简洁的API和灵活的配置赢得了广大开发者喜爱。在日常开发中,我们不仅...
xstream最新版jar包
尽管xpp3_min-1.1.4c.jar是精简版,但它确保了XStream在处理XML数据时的高性能和低内存消耗。在实际项目中,理解这两个库的工作原理和相互关系,对于优化代码性能和解决可能出现的问题都至关重要。
《XStream详解与应用》 XStream是一款强大的Java库,用于将对象序列化为XML,同时也能从XML数据中反序列化回对象。在标题"xstream-1.4.2.jar"中,我们看到的是XStream的一个特定版本——1.4.2。这个版本包含了...
XStream是一款强大的Java库,用于将Java对象序列化为XML,反之亦然。这个库的主要优点在于其简单易用的API和对复杂对象图的处理能力。在标题中提到的"Xstream相关的jar包",是指为了使用XStream库,需要引入的依赖...
3. **性能**: 相比于其他序列化库,XStream在某些场景下表现出较高的性能。 4. **安全性**: 提供了安全模式,防止潜在的跨站脚本(XSS)攻击。 5. **XML格式**: 输出的XML格式清晰易读,适合人类阅读和调试。 **...
6. 高效性能:XStream设计精良,执行效率高,特别是在处理大量数据时,其性能表现优秀。 使用“xstream-1.3.1.jar”,开发者可以将其添加到项目的类路径中,然后通过简单的几行代码就能实现对象和XML之间的转换。...
XStream库提供了一个简单、直观的方式来实现这种转换,使得XML序列化和反序列化变得非常方便。本篇将详细介绍XStream如何处理XML与Java对象的相互转换,以及如何处理List、Map等集合类型的数据。 首先,XStream是一...
**XStream 概述** XStream 是一个 Java 库,用于将对象序列化为 XML,以及从 XML 反序列化回对象。它提供了一种简单而直观的方式来处理 XML 数据,使得 XML 文档与 Java 对象之间的转换变得轻而易举。这个“xStream...
在 XStream 1.4.11 版本中,开发者可以期待稳定性和性能的提升。 **核心功能** 1. **XML 与 Java 对象的双向转换**:XStream 提供了一种直观的方式来将 Java 对象转换成 XML 文档,同时也可以将 XML 文档解析回...
XStream库的灵活性和性能使其成为许多Java开发者的首选工具。需要注意的是,在实际使用中,需要确保引入的jar包版本兼容,避免出现运行时异常。同时,为了保证数据的安全性,应合理设置XStream的安全配置,避免潜在...
XStream 是一个流行的 Java 库,用于将对象序列化为 XML 和从 XML 反序列化回对象。这个库广泛应用于各种 Java 应用程序,尤其是那些需要在网络间传输或存储对象数据的情况。在标题提到的 "xstream1.4.15.JAR" 文件...
XStream是一款强大的Java库,主要用于将Java对象序列化为XML,以及将XML反序列化回Java对象。在Java开发中,这种能力对于数据持久化、网络传输或配置存储等场景非常有用。标题中的"xstream-1.4.8最齐全的jar包"表明...
在本文中,我们将深入探讨Bboss和Xstream两个序列化和反序列化库在性能方面的差异。这两个库在Java开发中广泛用于将对象转换为XML格式,以便于存储、传输或持久化。以下是对这两个库的详细分析。 首先,Bboss和...
3. **高性能**:相对于其他序列化工具,XStream 在处理速度和内存占用方面表现出色。 4. **XML 结构清晰**:生成的 XML 输出简洁且易于阅读。 5. **类型适应性强**:序列化的对象可以包含任意复杂的数据结构,包括类...