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 ...
随机推荐
- 【JVM从小白学成大佬】3.深入解析强引用、软引用、弱引用、幻象引用
关于强引用.软引用.弱引用.幻象引用的区别,在很多公司的面试题中经常出现,可能有些小伙伴觉得这个知识点比较冷门,但其实大家在开发中经常用到,如new一个对象的时候就是强引用的应用. 在java语言中, ...
- Linux命令行中好用的快捷键
Ctrl + L:清屏,与clear同效: Ctrl + D:终结当前程序,向终端传递EOF(End Of File): Ctrl + A:光标移至一行命令开头: Ctrl + E:光标移至一行命令结 ...
- java两个对象属性比较
两个对象进行比较相等,有两种做法: 1,情况一:当仅仅只是判断两个对象是否相等时,只需重写equals()方法即可.这里就不用说明 2.情况二:当除了情况一之外,还需知道是那个属性不同,那么就需要采用 ...
- HDU 5135(再思考)
题意略. 思路:再思考后发现,为了构造出最大的三角形面积和,我们应该尽量让长的棍子相组合,这样构造出的三角形面积和最大,贪心能解. #include<bits/stdc++.h> usin ...
- 多线程环境中安全使用集合API(含代码)
转自: http://blog.csdn.net/ns_code/article/details/17200509 在集合API中,最初设计的Vector和Hashtable是多线程安全的.例如:对于 ...
- Java中集合的概述
一.集合和数组的区别 1.数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用. 2.集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数 ...
- sql查询技巧指南
传送门(牛客网我做过的每到题目答案以及解析) sql定义: 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用 ...
- JAVA实现读取图片
话不读说 直接上代码 package cn.kgc.ssm.common; import java.io.*; /** * @author * @create 2019-08-15 9:36 **/ ...
- 独家解读 etcd 3.4版本 |云原生生态周报 Vol. 18
作者 | 酒祝.墨封.宇慕.衷源 关注"阿里巴巴云原生"公众号,回复关键词 "资料" ,即可获得 2019 全年 meetup 活动 PPT 合集及 K8s 最 ...
- yzoj P1122 阶乘 题解
T组数据,给出N,求出N!最右边非零的数. 对于30%的数据,N <= 30,T<=10. 对于全部的数据,N <= 10^2009,T<=30. 一道数学题 解析 N!/(1 ...