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. Nacos(七):Nacos共享配置

    前言 本文参考文章: SpringCloud Alibaba - Nacos Config 自定义共享配置 前景回顾: Nacos(六):多环境下如何"管理"及"隔离&q ...

  2. 09_if条件语句的使用

    1.条件语句是用来判断给定的条件是否满足(表达式值是否为0),并根据判断的结果(真或假)决定执行的语句2.go语言和C语言的条件语句在语法格式上大体相似,但是还是有略微的不同,具体的细节如下 例子:p ...

  3. (一)LinkedList集合解析及手写集合

    一.LinkedList集合特点 问题 结      论 LinkedList是否允许空 允许 LinkedList是否允许重复数据 允许 LinkedList是否有序 有序 LinkedList是否 ...

  4. LeetCode939 最小面积矩形

    LeetCode939最小面积矩形 给定在 xy 平面上的一组点,确定由这些点组成的矩形的最小面积,其中矩形的边平行于 x 轴和 y 轴. 如果没有任何矩形,就返回 0. Input [[1,1],[ ...

  5. codeforces E. DNA Evolution(树状数组)

    题目链接:http://codeforces.com/contest/828/problem/E 题解:就是开4个数组举一个例子. A[mod][res][i]表示到i位置膜mod余数是res的‘A’ ...

  6. Codeforces 734D. Anton and Chess(模拟)

    Anton likes to play chess. Also, he likes to do programming. That is why he decided to write the pro ...

  7. 杭电第六场 hdu6362 oval-and-rectangle 积分求期望

    oval-and-rectangle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. 洛谷 P4206 [NOI2005]聪聪与可可 题解

    题面 输入 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行,每 ...

  9. 【Distributed】缓存技术

    一.缓存概述 1.1 缓存技术分类 1.2 缓存框架分类 1.3 Session理解的误区 二.基于Map集合实现本地缓存 2.1 定义Map缓存工具类 2.2 使用案例 三.Ehcache 缓存框架 ...

  10. python爬虫-模拟微博登录

    微博模拟登录 这是本次爬取的网址:https://weibo.com/ 一.请求分析 找到登录的位置,填写用户名密码进行登录操作 看看这次请求响应的数据是什么 这是响应得到的数据,保存下来 exect ...