XStream解析List

使用的JavaBean

  • 普通JavaBean
public class Book {
private String name; public Book() {
} public Book(String name) {
this.name = name;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
}
}
  • 包含List的JavaBean
public class BookBag {
private int price; private String name; private Date date; private List<Book> books; public int getPrice() {
return price;
} public void setPrice(int price) {
this.price = price;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Date getDate() {
return date;
} public void setDate(Date date) {
this.date = date;
} public List<Book> getBooks() {
return books;
} public void setBooks(List<Book> books) {
this.books = books;
} }

开始测试

1. 初始版

@Test
public void test1() {
BookBag bookBag = new BookBag();
bookBag.setPrice(100);
bookBag.setName("张三");
bookBag.setDate(new Date()); Book book1 = new Book("西游记");
Book book2 = new Book("红楼梦"); ArrayList<Book> books = new ArrayList<>();
books.add(book1);
books.add(book2); bookBag.setBooks(books); XStream xStream = new XStream(); String s = xStream.toXML(bookBag);
System.out.println(s); }

结果:

<test.hwj.bean.BookBag>
<price>100</price>
<name>张三</name>
<date>2019-04-08 07:38:18.854 UTC</date>
<books>
<test.hwj.bean.Book>
<name>西游记</name>
</test.hwj.bean.Book>
<test.hwj.bean.Book>
<name>红楼梦</name>
</test.hwj.bean.Book>
</books>
</test.hwj.bean.BookBag>

2. 为JavaBean加上注释,@XStreamAlias

修改代码:

@XStreamAlias("BookBag")
public class BookBag { @XStreamAlias("Book")
public class Book { // 开启注释
xStream.autodetectAnnotations(true);

结果:

<BookBag>
<price>100</price>
<name>张三</name>
<date>2019-04-08 07:45:41.187 UTC</date>
<books>
<Book>
<name>西游记</name>
</Book>
<Book>
<name>红楼梦</name>
</Book>
</books>
</BookBag>

3. 消除List外的大标签

修改代码:

@XStreamImplicit
private List<Book> books;

结果:

<BookBag>
<price>100</price>
<name>张三</name>
<date>2019-04-08 07:47:47.432 UTC</date>
<Book>
<name>西游记</name>
</Book>
<Book>
<name>红楼梦</name>
</Book>
</BookBag>

4. 对Date进行处理

修改代码:

// 注册转换器
xStream.registerConverter(new DateConverter("yyyy-MM-dd HH:mm:ss", null));

结果:

<BookBag>
<price>100</price>
<name>张三</name>
<date>2019-04-08 07:51:30</date>
<Book>
<name>西游记</name>
</Book>
<Book>
<name>红楼梦</name>
</Book>
</BookBag>

20190408 XStream解析List的更多相关文章

  1. 使用XStream解析MXL文件用到的jar包---xpp3_min-1.1.3.4.O.jar和xstream-1.3.1.jar

    使用XStream解析MXL文件用到的jar包---xpp3_min-1.1.3.4.O.jar和xstream-1.3.1.jar

  2. Xstream解析XML

    <oschina> <catalog>1</catalog> <newsCount>0</newsCount> <pagesize&g ...

  3. (转载)XML解析之-XStream解析

    转载来源:http://hwy584624785.iteye.com/blog/1168680 本例使用XStream生成一个xml文件,再发序列化xml文件内容. XStream是一个简单的类库,可 ...

  4. 使用XStream解析复杂XML并插入数据库(二)

    标注黄色地方:我需要加深学习!!! 我写的是webservice,目前具体写webservice的步骤我还不清楚, 整理完小知识开始整理webservice! 针对以下格式的XML进行解析 <? ...

  5. 使用XStream解析复杂XML并插入数据库(一)

    环境: Springboot+mysql 我只想说jpa真的超级好用,准备深入研究一下~ 导入依赖: <dependency> <groupId>org.projectlomb ...

  6. Xstream 解析xml文件内容

    刚刚接手的一个项目,接到一个对接用户数据的需求,对方使用的是xml格式来传输文件,特此记下解析该类文件的方法 public interface XmlResolver<T> { XStre ...

  7. 【转】十分详细的xStream解析

    转自博文:http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html xStream框架 xStream可以轻易的将Java对象和xml文 ...

  8. XStream解析

    package com.baidu.farment; import java.io.IOException;import java.util.ArrayList;import java.util.Li ...

  9. xstream 解析xml报文

    一.xml一种格式的数据转换为对象 pom.xml引入 <!--javaBean和XML的双向转换--> <dependency> <groupId>com.tho ...

随机推荐

  1. 《Linux内核设计与分析》第六周读书笔记——第三章

    <Linux内核设计与实现>第六周读书笔记——第三章 20135301张忻估算学习时间:共2.5小时读书:2.0代码:0作业:0博客:0.5实际学习时间:共3.0小时读书:2.0代码:0作 ...

  2. 2017-2018-2 1723《程序设计与数据结构》实验四 & 实验五 & 课程总结 总结

    作业地址 实验四作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1943 提交情况如图: 实验五作业:https://edu ...

  3. Asp.net框架与SpringMvc框架简单分析

    (此文为自我总结,错误很多请勿借鉴) 1.就前两天分析SpringMvc框架中是通过controler来实现跳转页面,通过mapping来实现数据连接 分析的方法又通过java的类之间进行相互调用,个 ...

  4. 使用Junit进行单元测试

    使用Junit进行单元测试 一.目的和要求 JUnit是一款由Erich Gamma(<设计模式>的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人 ...

  5. 第三个Sprint冲刺第六天(燃尽图)

  6. 第三个Sprint冲刺第四天(燃尽图)

  7. Docker中安装Nexus3

    https://blog.csdn.net/sqandczm/article/details/78560710 https://hub.docker.com/r/sonatype/nexus/ htt ...

  8. [转帖]什么是Asp.net Core?和 .net core有什么区别?

    什么是Asp.net Core?和 .net core有什么区别? https://www.cnblogs.com/itzhangxp/p/8322364.html 知道微软开始用 kestrel了 ...

  9. python代码格式检查工具部署pre_commit

    如何使用pre_commit?1. 合并该分支 2. 在git根目录下使用pre-commit install即可3. 如果没有装pre-commit 安装一下pip install pre-comm ...

  10. 自定义Label控件

    最近开发过程中有一个需求就是修改label控件的模板,使其能够在鼠标移近的时候变成TextBox,从而方便输入,然后进行相应的修改,最终达到动态修改Label的目的,这里贴出相应的代码,并做简要的分析 ...