目前采用XSTREAM开源组件做xml的序列化和反序列化,尝试了下,做了个DEMO,以备查阅
@XStreamAlias("User")
public class User
{
@XStreamAlias("Id")
public String id;
@XStreamAlias("DisplayName")
public String displayName;
public User()
{
super();
}
public User(String id, String displayName)
{
super();
this.id = id;
this.displayName = displayName;
}
}
@XStreamAlias("Content")
public class Content
{
@XStreamAlias("Id")
public String id;
@XStreamAlias("Name")
public String name;
@XStreamAlias("Value")
public String value;
public Content(String id, String name, String value)
{
super();
this.id = id;
this.name = name;
this.value = value;
}
}
@XStreamAlias("TestXstream")
public class TestXstream
{
// 标记为节点属性
@XStreamAsAttribute
protected String xmlns = "http://s3.amazonaws.com/doc/2006-03-01";
// 忽略该属性
@XStreamOmitField
public String ignoreProperty;
// 序列化别名
@XStreamAlias("Name222")
public String name;
@XStreamAlias("Type")
public String type;
public Map<String, String> map = new HashMap<String, String>();
@XStreamAlias("Users")
public List<User> users = new ArrayList<User>();
public List<Content> contents = new ArrayList<Content>();
public TestXstream()
{
super();
}
public TestXstream(String name, String type)
{
super();
this.name = name;
this.type = type;
}
/**
* 使用DEMO
*
* @param args
*/
public static void main(String[] args)
{
TestXstream tx = new TestXstream("我带中文,yes", "我也特殊字符哈<f>");
tx.contents.add(new Content("1", "name1", "value1"));
tx.contents.add(new Content("2", "name2", "value2"));
tx.users.add(new User("1", "zhansgdfasdf"));
tx.users.add(new User("2", "asdfasdfasdf"));
tx.map.put("1", "234234");
tx.map.put("2", "234234");
// 对象序列化
XStream xstream = new XStream(new DomDriver());
xstream.autodetectAnnotations(true);
// 不序列化contents属性,但是序列化下面的子对象
xstream.addImplicitCollection(TestXstream.class, "contents");
// 格式化输出
System.out.println(xstream.toXML(tx));
// 无格式输出
Writer writer = new StringWriter();
xstream.marshal(tx, new CompactWriter(writer));
String seri = writer.toString();
System.out.println(seri);
// 反序列化
Object object = xstream.fromXML(seri, new TestXstream());
System.out.println(object);
}
}
分享到:
相关推荐
XStream使用例子,如何序列化、反序列化到XML和JSON格式。
Xstream使用说明 各种使用案例
XStream Java Android下的使用.有读写相关的测试.
XStream开发时使用的包,官网原句:XStream is a simple library to serialize objects to XML and back again. 要使对象转化成xml,使用: XStream xstream = new XStream(); String str = xtream.toXML(Object); ...
该文件是XStream官方使用文档,有效帮助程序员解决xml技术问题
xstream xml java对象转换,直接导入使用即可看到效果
最齐全的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 反序列化漏洞(CVE-2020-26258 & 26259),修复jar包 xstream-1.4.15.jar Xstream 是 Java 类库,用来将对象序列化成 XML (JSON) 或反序列化为对象。XStream 是一款开源软件,允许在 BSD 许可证的许可下分发...
xstream最新版jar包
使用xstream来读取xml文件的demo,该demo中,使用了支付宝对账单返回的xml为列子来展示使用xstream的注解的方式读取xml,并且转成实体类.学习xstream或者对xstream有疑问的可以参考下..之所以使用支付宝账单返回的xml是...
赠送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使用文档
XStream是以个实现序列化数据和xml之间相互转换的类库,使用非常简单、方便
XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象作出修改。XStream可以序列化内部字段,包括私private和final字段,并且支持非公开类以及内部类。 在缺省情况下,XStream不...
xstream-1.4.19.jar
xStream xml to bean,使用xStream 互转 xml 、bean. 的一个工具类。
多个类注解@XStreamAlias,value相同、且在集合上使用了@XStreamImplicit会出现异常: com.thoughtworks.xstream.converters.ConversionException: No field 'null' found in class '.....(注解的类路径)' ---- ...
xstream jar包,java对象转xml以及xml转java对象,操作很简单。
XStream使用文档.docx
一个小demo展示xml的两种解析方式和四种解析方法,以及使用XStream进行javaBean与xml、json之间的转换