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转化的更多相关文章

  1. JavaBean与XML转换——XStream使用笔记

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6648131.html  一:View层与Control层的数据交互 做过Web项目的人都知道,当对一个requ ...

  2. json、javaBean、xml互转的几种工具介绍

    json.javaBean.xml互转的几种工具介绍 转载至:http://blog.csdn.net/sdyy321/article/details/7024236 工作中经常要用到Json.Jav ...

  3. json、javaBean、xml互转的几种工具介绍 (转载)

    工作中经常要用到Json.JavaBean.Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考. 现在主流的转换工具有json-lib.jackson.fastjson等,我为大家一一做简 ...

  4. XStream类对象把List<javaBean>()转成json数据

    [省市联动] Servlet端: XStream把list转成json数据 //JSONArray-->变成数组/集合[] //JSONObject-->变成简单的数据{name:ayee ...

  5. XML,json,ajax

    一.XML 1.概述:XML全称为Extensible Markup Language, 意思是可扩展的标记语言 2.版本:W3C在1998年2月发布1.0版本:W3C在2004年2月发布1.1版本, ...

  6. JSON详解以及可以把javabean转换成json串的json-lib应用

    JSON 1. json是什么 它是js提供的一种数据交换格式! 2. json的语法 {}:是对象! 属性名必须使用双引号括起来!单引不行!!! 属性值:null,数值,字符串,数组:使用[]括起来 ...

  7. JavaBean转xml

    JavaBean转xml的工具就是:XStream XStream的作用: XStream可以把JavaBean对象转换成XML!通常服务器向客户端响应的数据都是来自数据库的一组对象,当我们不能直接把 ...

  8. Jaxb2实现JavaBean与xml互转的方法详解

    本文实例讲述了Jaxb2实现JavaBean与xml互转的方法.分享给大家供大家参考,具体如下: 一.简介 JAXB(Java Architecture for XML Binding) 是一个业界的 ...

  9. jsonObject关于xml,json,bean之间的转换关系

    1.json转换为JAVA @Test public void jsonToJAVA() { System.out.println("json字符串转java代码"); Strin ...

随机推荐

  1. Ubuntu 图形界面入门

    Ubuntu 图形界面入门 一.目标 熟悉 Ubuntu 图形界面的基本使用 二..Ubuntu 的任务栏 三. 窗口操作按钮 四. 窗口菜单条

  2. sql server中的cte

    从SQL Server 2005开始,提供了CTE(Common Table Expression,公用表表达式)的语法支持. CTE是定义在SELECT.INSERT.UPDATE或DELETE语句 ...

  3. 缓存系列-Redis入门教程

    Redis是什么? Redis (REmote DIctionary Server)是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列,是一个高性能的key-valu ...

  4. python 25 类的成员

    目录 1. 类的私有成员 -- __ 1.1 类的私有静态属性 1.2 类的私有方法 1.3 对象的私有方法 2. 类的其他方法 2.1 类方法 @classmethod 2.2 静态方法 @stat ...

  5. 详解javascript中的this的指向问题

    首先,要明白this 既不指向函数自身,也不指函数的词法作用域.this一般存在于函数中,表示当前函数的执行上下文,如果函数没有执行,那么this没有内容,只有函数在执行后this才有绑定. 然后,我 ...

  6. 线程、进程的区别,Java的几个线程状态

    线程.进程的区别        进程的定义:进程就是程序在一个数据集合上的一次执行过程.他与程序的区别在于程序是静态的代码,而进程是动态的执行过程. 进程的特性:1.结构性,进程由程序块.数据块.进程 ...

  7. js 取两位小数

    var totalPrice = (product.unitPrice * product.nums).toFixed(2);

  8. 位运算总结(Bit Operation)

    位运算 数字用二进制表示后的运算 无论是有符号,无符号还是其他各种类型的数.它们之间的转换的基石就是二进制的表达式没有发生改变,变得只是转换的表达式. 1.简单的布尔运算 Boolean algebr ...

  9. 2019dx#4

    Solved Pro.ID Title Ratio(Accepted / Submitted)   1001 AND Minimum Spanning Tree 31.75%(1018/3206)   ...

  10. CodeForces Round 525

    A:Ehab and another construction problem #include<bits/stdc++.h> using namespace std; #define F ...