XStream实现javabean和xml、json转化
xStream转换XML、Json数据
xStream可以轻易的将javaBean对象和xml相互转换,修改某个特定的属性和节点名称,而且也支持json的转换。
maven依赖:
1 <dependency>
2 <groupId>com.thoughtworks.xstream</groupId>
3 <artifactId>xstream</artifactId>
4 <version>1.4.5</version>
5 </dependency>
一:javaBean <-> xml
1.基本
1 class Person {
2 private String name;
3 private int phoneNuber;
4 private List<Address> addresses = new ArrayList<Address>();
5 ...
6 }
7 class Address {
8 private String street;
9 private int houseNo;
10 ...
11 }
12 public static String toXML(){
13 XStream xStream = new XStream();
14 xStream.alias("person", Person.class);
15 xStream.alias("address",Address.class);
16 xStream.setMode(XStream.NO_REFERENCES);
17 xStream.addImplicitCollection(Person.class, "addresses");//去除 addresses节点生成
18 xStream.useAttributeFor(Person.class,"name"); //name作为person节点的属性出现,即name=xxx,不设置此项的话,name作为单独的节点<name>出现
19 return xStream.toXML(person);
20 }
21 public static Person toEntity(String inputXML){
22 XStream xs = new XStream();
23 xs.alias("person",Person.class);
24 xs.alias("address",Address.class);
25 xs.setMode(XStream.NO_REFERENCES);
26 xs.addImplicitCollection(Person.class,"addresses");
27 xs.useAttributeFor(Person.class, "name");
28 Person person = (Person)xs.fromXML(inputXML);
29 return person;
30 }
2.基于annotations
//设置Person类在xml中的别名
@XStreamAlias("person")
class Person {
//将name设置为XML person 元素的 attribute
@XStreamAsAttribute()
private String name;
private int phoneNuber;
//将此字段名在XML中去掉
@XStreamImplicit()
private List<Address> addresses = newArrayList<Address>();
...
}
@XStreamAlias("address")
class Address {
private String street;
private int houseNo;
...
} public static Person toEntity(String inputXML){
XStream xs = new XStream();
xs.setMode(XStream.NO_REFERENCES);
//注册使用了注解的bean
xs.processAnnotations(new Class[]{Person.class,Address.class});
Person person = (Person)xs.fromXML(inputXML);
return person;
} public static String toXML(){
XStream xStream = new XStream();
xStream.setMode(XStream.NO_REFERENCES);
//注册使用了注解的VO
xStream.processAnnotations(new Class[]{Person.class,Address.class});
return xStream.toXML(person);
}
2.javaBean <-> json
待完善。。。。。。。。。。。。。
XStream实现javabean和xml、json转化的更多相关文章
- JavaBean与XML转换——XStream使用笔记
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6648131.html 一:View层与Control层的数据交互 做过Web项目的人都知道,当对一个requ ...
- json、javaBean、xml互转的几种工具介绍
json.javaBean.xml互转的几种工具介绍 转载至:http://blog.csdn.net/sdyy321/article/details/7024236 工作中经常要用到Json.Jav ...
- json、javaBean、xml互转的几种工具介绍 (转载)
工作中经常要用到Json.JavaBean.Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考. 现在主流的转换工具有json-lib.jackson.fastjson等,我为大家一一做简 ...
- XStream类对象把List<javaBean>()转成json数据
[省市联动] Servlet端: XStream把list转成json数据 //JSONArray-->变成数组/集合[] //JSONObject-->变成简单的数据{name:ayee ...
- XML,json,ajax
一.XML 1.概述:XML全称为Extensible Markup Language, 意思是可扩展的标记语言 2.版本:W3C在1998年2月发布1.0版本:W3C在2004年2月发布1.1版本, ...
- JSON详解以及可以把javabean转换成json串的json-lib应用
JSON 1. json是什么 它是js提供的一种数据交换格式! 2. json的语法 {}:是对象! 属性名必须使用双引号括起来!单引不行!!! 属性值:null,数值,字符串,数组:使用[]括起来 ...
- JavaBean转xml
JavaBean转xml的工具就是:XStream XStream的作用: XStream可以把JavaBean对象转换成XML!通常服务器向客户端响应的数据都是来自数据库的一组对象,当我们不能直接把 ...
- Jaxb2实现JavaBean与xml互转的方法详解
本文实例讲述了Jaxb2实现JavaBean与xml互转的方法.分享给大家供大家参考,具体如下: 一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的 ...
- jsonObject关于xml,json,bean之间的转换关系
1.json转换为JAVA @Test public void jsonToJAVA() { System.out.println("json字符串转java代码"); Strin ...
随机推荐
- HDU 6315
题意略. 思路:本题的思路总的来说就是暴力 + 剪枝. 我们依然用线段树来维护: 定义结点node{ l , r , minn , contirbute} 分别为某个区间的左右端点,和该区间(b序列) ...
- 「每日五分钟,玩转JVM」:对象从哪来
面向对象 众所周知,Java是一门面向对象的高级编程语言,那么现在问题来了,对象从哪来呢?有些人会说通过new关键字来创建一个对象,说的很好,本篇我们就来解密在new一个对象的过程中,JVM都给我们做 ...
- node.js的特点与模块化开发
node.js的代码都是构建在模块化开发的基础之上,模块化开始也是node.js的核心之一. node.js跳过了服务器,它自己不用建设在任何服务器软件之上,node.js的许多设计理念与经典架构(L ...
- ObjectMapper
String jsonStr=""; String content=jsonStr; ObjectMapper objectMapper = new ObjectMapper(); ...
- C# 生产者与消费者模式
情景:一个线程不断获取数据,另一个线程不断处理这些数据. 常规方法:数据列表加锁,两个线程获取锁,拿到操作权:类似代码如下:(不推荐) static void Main(string[] args) ...
- Badboy - 从excel中读取数据
参考: http://leafwf.blog.51cto.com/872759/1119161 http://www.51testing.com/html/00/130600-1367743.html ...
- hdu 1024 Max Sum Plus Plus(简单dp)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1024 题意:给定一个数组,求其分成m个不相交子段和的最大值. 这题有点问题其实m挺小的但题目并没有给出 ...
- Pandas Python For Data Science
- EditPlus5.0破解激活
永久激活用户名激活码: 用户名:Vovan注册码:3AG46-JJ48E-CEACC-8E6EW-ECUAW 然后重启软件即可
- 关于jstl和web.xml之间的版本问题
jstl的版本1.2对应web.xml3.1版本 jstl的版本1.1对应web.xml2.3版本 (IDEA中默认创建的是2.3的web.xml,最好换成3.1版本的) web.xml模板: < ...