java与xml转换 -- XStreamAlias
@XStreamAlias
1.特点
简化的API;
无映射文件;
高性能,低内存占用;
整洁的XML;
不需要修改对象;支持内部私有字段,不需要setter/getter方法
提供序列化接口;
自定义转换类型策略;
2.使用场景
Transport转换
Persistence 持久化对象
Configuration 配置
Unit Tests 单元测试
Interface服务之间XML消息的交互
3.model
实体类
import com.thoughtworks.xstream.annotations.XStreamAlias;/*** @author ceshi* @Title: Student* @ProjectName ceshi* @Description: TODO* @date 2018/6/2817:29*/ @XStreamAlias("Student_Message") public class Student {private String id;private String name;private String age;private String achievement;public Student(String id,String name,String age,String achievement){this.id = id;this.name = name;this.age = age;this.achievement = achievement;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getAchievement() {return achievement;}public void setAchievement(String achievement) {this.achievement = achievement;}@Overridepublic String toString() {return "Student{" +"id='" + id + '\'' +", name='" + name + '\'' +", age='" + age + '\'' +", achievement='" + achievement + '\'' +'}';} }
工具类
import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver;/*** @author ceshi* @Title: XStreamUtils* @ProjectName ceshi* @Description: TODO* @date 2018/6/2817:38*/ public class XStreamUtils {/*** 将Object转换为xml* @param obj 转换的bean* @return bean转换为xml*/public static String objectToXml(Object obj) {XStream xStream = new XStream();//xstream使用注解转换 xStream.processAnnotations(obj.getClass());return xStream.toXML(obj);}/*** 将xml转换为T* @param <T> 泛型* @param xml 要转换为T的xml* @param cls T对应的Class* @return xml转换为T*/public static <T> T xmlToObject(String xml, Class<T> cls){XStream xstream = new XStream(new DomDriver());//xstream使用注解转换 xstream.processAnnotations(cls);return (T) xstream.fromXML(xml);} }
测试类
import org.junit.Test;/*** @author ceshi* @Title: JunitXStream* @ProjectName ceshi* @Description: TODO* @date 2018/6/2817:29*/ public class JunitXStream {@Testpublic void test(){Student s = new Student("1","张三","18","90");String xml = XStreamUtils.objectToXml(s);xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+xml;xml = xml.replaceAll("__","_");System.out.println(xml);Student ss = XStreamUtils.xmlToObject(xml,Student.class);System.out.println(ss);} }
结果:
pom:需要使用到 xstream-1.4.8.jar
<dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.8</version> </dependency>
注意事项:
1.XStream有一些小bug,在定义别名中的下划线“_”转换为xml后会变成“__”这个符号,下划线问题可以用下面这个解决
XStream xStream = new XStream(new XppDriver(new XmlFriendlyNameCoder("_-", "_")));
也可以像测试类中用:replaceAll("__","_"); 替换掉
转载于:https://www.cnblogs.com/qinxu/p/9240038.html
java与xml转换 -- XStreamAlias相关推荐
- java bean与xml转换_Java Bean与xml互相转换的方法分析
本文实例讲述了Java Bean与xml互相转换的方法.分享给大家供大家参考,具体如下: XML和Java Bean互相转换是一个很有用的功能,因为两者有着前后合作的关系,但解析的过程比较痛苦.下面介 ...
- java xml转html_如何在Java中将XML文档转换成HTML文档.pdf
您所在位置:网站首页 > 海量文档  > 计算机 > 网页设计/UI 如何在Java中将XML文档转换成HTML文档. ...
- 使用castor实现xml和java对象的转换
对于xml和java对象的转换这里用castor进行转换,当然还有别的方式 方式一:castor和xml映射文件配合 首先提供需要解析的XML(内容不重要,重要的是格式) <?xml versi ...
- 依靠JAXBContext轻松实现Java和xml的互相转换
类文件注解:@XmlRootElement不可缺少 @XmlRootElement public class Man { private String name; private int age; p ...
- java generatorconfig_generatorConfig.xml配置信息详细
mybatis-generator有三种用法:命令行.eclipse插件.maven插件.我的以为maven插件最方便,能够在eclipse/intellij idea等ide上能够通用.html 下 ...
- Java对象XML序列化框架-Simple2.0
Java对象XML序列化框架-Simple2.0 Simple是一个XML序列化框架,一个Java 版本宽容的序列化框架,能够快速在Java 平台上开发XML.支持通过annotations完全配置化 ...
- JSON与JAVA数据的转换
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean. 下载地址:http://json-lib.sourceforge.net ...
- java解析xml的几种方式
java解析xml的几种方式 博客分类: java基础备忘-好记性不然烂笔头 XMLJava应用服务器数据结构编程 第一种:DOM. DOM的全称是Document Object Model,也即文 ...
- java流读取xml_使用FileInputStream(用于Java)读取XML文件?
这是交易. 对于我的项目,我必须使用Java和XStream对随机树进行序列化和反序列化.我的老师制作了Tree / RandomTree算法,所以我不必担心.我不知道该怎么做是这样的:我使用File ...
- java的xml面试题_Java程序员的10个XML面试问答
java的xml面试题 XML面试问题在各种编程工作面试中非常受欢迎,包括针对Web开发人员的Java面试 . XML是一项成熟的技术,通常用作从一个平台传输数据的标准. XML面试问题包含来自各种X ...
最新文章
- Anaconda中文版
- app 名字 android,SiRi App For Android名字特殊符号_九游手机游戏
- Android开发的环境搭建及HelloWorld的实现
- 微信转账一次显示两个_微信为啥分红包和转账两大功能?这4个区别你要知道,望相互转告...
- java流写入数据库_成为Java流大师–第4部分:数据库流
- 詹金斯搭建_詹金斯的Maven报告
- C++里将string类字符串(utf-8编码)分解成单个字(可中英混输)
- 彻底搞懂javascript中的match, exec的区别
- [Spring+Hibernate系列]1.Spring+Hibernate 框架搭建
- MySQL基础知识,入门必备
- 每日新闻丨阿里巴巴香港IPO指引价每股176港元左右;全球超级计算机500强榜单出炉...
- shell特殊命令 sort_wc_unip命令
- OJ 2312 Problem B	Peach
- iOS-Building for iOS Simulator, but the linked and embedded framework ‘XX.framework‘ was built for
- 产业园区需要塑造的“六”大品牌
- 传统的6d位姿估计fangfa1_6D姿态估计算法汇总(上)
- 计算机网络原理第二章答案
- 舒伯特小夜曲(钢琴版)
- (笔记)SLF4J: No SLF4J providers were found.解决方法
- 定期存款可以提前取出来吗_存的定期可以提前取吗
热门文章
- 学计算机 数学日记,数学日记3篇
- 谷歌浏览器的笔记在哪里_selenium学习笔记之启动谷歌浏览器
- p8b75-m修改bios文件_傻瓜式方法:VMWARE使用NAT方式彻底解决开发板无法挂载ubuntu文件的难题...
- bui框架与php结合,bui框架前端自定义配色基础属性
- openstack连通性检查显示验证失败_从超大规模部署到一体机,浪潮云海引领OpenStack落地新范式...
- 【HDU5536】Chip Factory(01字典树+01字典树上删除某个数)
- 链表的基本操作:创建、插入、删除操作对应c/c++代码
- iis服务器转发消息至服务端,IIS服务器配置NXLog进行syslog转发
- 802.x无线认证服务器,无线802.1X认证
- html最大化和最小化,电脑上最大化最小化图标变了怎么办