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 反序列化漏洞(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最新版jar包
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.11.pom; 包含翻译后的API文档:xstream-1.4.11-...
xstream-1.4.19.jar
xstream-1.4.20.jar
xstream jar包,java对象转xml以及xml转java对象,操作很简单。
XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...
xstream-1.4.2.jar,官网上也有,由于本人分没了,希望有分的同志给点分。如果你也每份,请上官网下,地址:http://xstream.codehaus.org/download.html
xstream 1.2 ,xstream 1.2.2.jar xstream 1.2 ,xstream 1.2.2.jar
xstream-1.4.7.jar XML
com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- Debugging information ---- message : No field 'null' found in class '.....' cause...
XStream解析XML实例
xstream所需要的jar包,xstream-1.4.9.jar、dom4j-1.6.1.jar、xpp3_min-1.1.4c.jar等
赠送jar包:xstream-1.4.7.jar; 赠送原API文档:xstream-1.4.7-javadoc.jar; 赠送源代码:xstream-1.4.7-sources.jar; 赠送Maven依赖信息文件:xstream-1.4.7.pom; 包含翻译后的API文档:xstream-1.4.7-javadoc-...
XStream DOC
xstream xstream-1.4.5.jar
xstream-1.4.2
webService接口对接时,需要传递一个xml内容。用xStream拼接xml