XStream 初探,很给力

主要代码 /** * Xstream 测试 * @return */ @RequestMapping("/forward/xstream") public String xstream(){ String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><epay><items><item><id>2</id><name>cyc1</name></item><item><id>1</id><name>cyc</name></item></items></epay>"; XStream xstream = new XStream(); //获取生成的对象 TestVo testVo = getPerson(); //构建对应的节点(这里很重要构建生成的Xml 文件或者对象的节点) xstream.alias("epay",TestVo.class); xstream.aliasField("items",TestVo.class, "list"); xstream.alias("item", tests.class); //将对象转为xml String xml = xstream.toXML(testVo); System.out.println("cyc==== XStream:"+xml); //将xml转为对象 TestVo testVos = (TestVo) xstream.fromXML(str); System.out.println("cyc==== testVos"+testVos); //将对象再次转为xml String xml2 = xstream.toXML(testVos); System.out.println("cyc==== XStream2:"+xml2); System.out.println("cyc==== Size:"+testVos.getList().size()); return "publicTpl/notChrome"; } public TestVo getPerson(){ TestVo testVo = new TestVo(); List<tests> list = new ArrayList<tests>(); for(int i=0;i<10;i++){ tests tests = new tests(); tests.setId("1"); tests.setName("cyc"); list.add(tests); } testVo.setList(list); return testVo; } TestVo类代码: public class TestVo { private List<tests> list;

public List<tests> getList() {
	return list;
}

public void setList(List<tests> list) {
	this.list = list;
}

@Override
public String toString() {
	return "TestVo [list=" + list + "]";
}

} tests类代码: public class tests { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "tests [id=" + id + ", name=" + name + "]"; }

}

输出结果:

cyc==== XStream:<epay>
  <items>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
  </items>
</epay>
cyc==== testVosTestVo [list=[tests [id=2, name=cyc1], tests [id=1, name=cyc]]]
cyc==== XStream2:<epay>
  <items>
    <item>
      <id>2</id>
      <name>cyc1</name>
    </item>
    <item>
      <id>1</id>
      <name>cyc</name>
    </item>
  </items>
</epay>
cyc==== Size:2
(maven)所续的pom文件:
<dependency>
		    <groupId>xstream</groupId>
		    <artifactId>xstream</artifactId>
		    <version>1.2.2</version>
		</dependency>

注意事项:如果想在java 项目中运行这个需要添加一些关联的包不然的话会报一个:

Exception in thread "main" com.thoughtworks.xstream.io.StreamException: Cannot create XmlPullParser
	at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:56)
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1085)
	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1076)
	at test.test3.main(test3.java:16)
Caused by: org.xmlpull.v1.XmlPullParserException: could not load any factory class (even small or full default implementation); nested exception is: 
	org.kxml2.io.XmlReader
	at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:225)
	at org.xmlpull.v1.XmlPullParserFactory.newInstance(XmlPullParserFactory.java:76)
	at com.thoughtworks.xstream.io.xml.XppDriver.createParser(XppDriver.java:57)
	at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54)
	... 3 more

转载于:https://my.oschina.net/saicyc/blog/785831

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值