20190408 XStream解析List
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的更多相关文章
- 使用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
- Xstream解析XML
<oschina> <catalog>1</catalog> <newsCount>0</newsCount> <pagesize&g ...
- (转载)XML解析之-XStream解析
转载来源:http://hwy584624785.iteye.com/blog/1168680 本例使用XStream生成一个xml文件,再发序列化xml文件内容. XStream是一个简单的类库,可 ...
- 使用XStream解析复杂XML并插入数据库(二)
标注黄色地方:我需要加深学习!!! 我写的是webservice,目前具体写webservice的步骤我还不清楚, 整理完小知识开始整理webservice! 针对以下格式的XML进行解析 <? ...
- 使用XStream解析复杂XML并插入数据库(一)
环境: Springboot+mysql 我只想说jpa真的超级好用,准备深入研究一下~ 导入依赖: <dependency> <groupId>org.projectlomb ...
- Xstream 解析xml文件内容
刚刚接手的一个项目,接到一个对接用户数据的需求,对方使用的是xml格式来传输文件,特此记下解析该类文件的方法 public interface XmlResolver<T> { XStre ...
- 【转】十分详细的xStream解析
转自博文:http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html xStream框架 xStream可以轻易的将Java对象和xml文 ...
- XStream解析
package com.baidu.farment; import java.io.IOException;import java.util.ArrayList;import java.util.Li ...
- xstream 解析xml报文
一.xml一种格式的数据转换为对象 pom.xml引入 <!--javaBean和XML的双向转换--> <dependency> <groupId>com.tho ...
随机推荐
- 转发:C#操作SQL Server数据库
转发自:http://www.cnblogs.com/rainman/archive/2012/03/13/2393975.html 1.概述 2.连接字符串的写法 3.SqlConnection对象 ...
- What’s for Beta
经过和Travis与Zhongqiu讨论,我们希望我们发布的Beta版本会支持如下内容: Naïve long-term plan UI (Useable) Naïve long-term plan ...
- DrangonBorns
团队介绍 团队名称:DrangonBorns(龙裔) 团队博客:http://www.cnblogs.com/DragonBorns/ 团队队长:蒲建国 队长博客链接:htt ...
- mysql复杂查询
所谓复杂查询,指涉及多个表.具有嵌套等复杂结构的查询.这里简要介绍典型的几种复杂查询格式. 一.连接查询 连接是区别关系与非关系系统的最重要的标志.通过连接运算符可以实现多个表查询.连接查询主要包括内 ...
- bat脚本的写法
当你每次都要输入相同的命令时,可以把这么多命令存为一个批处理,从此以后,只要运行这个批处理,就相当于打了几行.几十行命令.下面以Nginx服务的停止脚本为例写一个bat批处理文件: 1.新建nginx ...
- hive数据导入Sqoop工具
下载Sqoop ,直接解压缩;然后导入2个环境变量 1.导入oracle数据库中表emp的数据到hive表中 1.导入到HDFS中 $ sqoop import --connect jdbc:mysq ...
- JUC-Condition线程通信
1,Codition接口描述了可能会与锁有关联的条件变量.这些变量在用法上与使用Object.wait访问的隐式监视器类似. 但提供了更强大的功能,需要指出的是,单个lock可能与多个conditio ...
- git-stash用法小结
[时间:2016-10] [状态:Open] [关键词:git,版本控制,版本管理,stash,git储藏] 缘起 今天在看一个bug,之前一个分支的版本是正常的,在新的分支上上加了很多日志没找到原因 ...
- ref、out与params
ref 把值传递转换为引用传递,侧重于将一个值带到函数中进行改变,再将改变后的值带出去,ref参数在函数外必须为ref参数赋值 ; AddSalary(ref salary); //如果不写ref,s ...
- VMware下Centos7快速搭建vsftpd
最简单快捷的实现ftp的功能,不考虑安全问题. 1.配置防火墙和selinux vi /etc/selinux/config # This file controls the state of SEL ...