java对象转xml 高性能_xml与java对象的快速互转
做流程图的项目时,新的流程定义为xml的,需要对xml与java对象进行互转
查了一下activiti的转换xml方式,发现转换太麻烦了,需要一步步的解析xml
后面发现直接用jaxb就可以很快实现互转,而且现在这个jaxb在jdk内,不需要引入外部的解析xml的包
具体如下:
一.根据XML构建java对象
@XmlRootElement(name = "mxGraphModel")
public class MxGraphModel {
private MxRoot root;
@XmlElement(name = "root")
public MxRoot getRoot() {
return root;
}
public void setRoot(MxRoot root) {
this.root = root;
}
}
该java对象直接使用注解就可以声明,其他相关注解如下:
1.@XmlRootElement,用于类级别的注解,对应xml的跟元素。通过name属性定义这个根节点的名称。
2.@XmlAccessorType,定义映射这个类中的何种类型都需要映射到xml。(如果不存在@XmlAccessorType,默认使用XmlAccessType.PUBLIC_MEMBER注解)
参数:XmlAccessType.FIELD: java对象中的所有成员变量。
XmlAccessType.PROPERTY:java对象中所有通过getter/setter方式访问的成员变量。
XmlAccessType.PUBLIC_MEMBER:java对象中所有的public访问权限的成员变量和通过getter/setter方式访问的成员变量。
XmlAccessType.NONE: java对象的所有属性都不映射为xml的元素。
3.@XmlAttribute,用于把java对象的属性映射为xml的属性,并可通过name属性为生成的xml属性指定别名。
4.@XmlElement,指定一个字段或get/set方法映射到xml的节点。通过name属性定义这个根节点的名称。
5.@XmlElementWrapper,为数组或集合定义一个父节点。通过name属性定义这个父节点的名称。
二。执行java及xml的互转
/**
* xml转对象
*
* @param xml
* @return
* @throws JAXBException
*/
public MxGraphModel convertToGraphModel(String xml) throws JAXBException {
StringReader reader = new StringReader(xml);
JAXBContext jaxbContext = JAXBContext.newInstance(MxGraphModel.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
MxGraphModel graphModel = (MxGraphModel) jaxbUnmarshaller.unmarshal(reader);
return graphModel;
}
/**
* 将对象转为流程XML
*
* @param graphModel
* @return
* @throws JAXBException
*/
public String convertToXML(MxGraphModel graphModel) throws JAXBException {
JAXBContext jaxbContext = JAXBContext.newInstance(MxGraphModel.class);
StringWriter writer = new StringWriter();
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.marshal(graphModel, writer);
String xmlStr = writer.toString();
xmlStr = StringUtils.replace(xmlStr, """, "'");
return xmlStr;
}
上述该方法转换简单,易明白,但唯一不足时,对XML的解析依赖整个对象,不能动态增加XML的解析,不过现阶段来说,这个办法已经足够了!
原文链接:https://www.jianshu.com/p/a150a481c110
java对象转xml 高性能_xml与java对象的快速互转相关推荐
- java 序列化成xml文件_将Java对象序列化成JSON和XML格式
1.先定义一个Java对象Person: public class Person { String name; int age; int number; public String getName() ...
- java接口返回xml格式_xml格式接口数据编程实战
系统对外提供接口,或者系统调用外部接口,常常会使用xml格式作为接口数据传输格式(json数据,txt文本数据亦可),下面讲讲xml数据的生成和解析. 首先讲讲xml数据生成,通常可以用两种方法,使用 ...
- java json转换xml格式_在Java中将JSON对象转换为XML格式?
JSON是一种轻量级的数据交换格式,并且JSON的格式类似于键值对.我们可以使用org.json.XML类将JSONObject转换为XML格式,这提供了将XML文本转换为JSONObject并将JS ...
- Java JSON、XML文件/字符串与Bean对象互转解析
前言 在做web或者其他项目中,JSON与XML格式的数据是大家经常会碰见的2种.在与各种平台做数据对接的时候,JSON与XML格式也是基本的数据传递格式,本文主要简单的介绍JSON/XML ...
- java文件和xml文件_用Java分割大型XML文件
java文件和xml文件 上周,我被要求用Java编写一些东西,该东西能够将一个30GB的XML文件拆分为可配置文件大小的较小部分. 文件的使用者将是一个中间件应用程序,该应用程序在XML的大尺寸方面 ...
- java对象转xml 高性能_通过实例学习JAVA对象转成XML输出
一.总体说明 XML和JSON 是最为常用的数据交换格式 本例子演示如何将java对象,转成XML输出. 二.流程 1.在上文的例子中,创建一个包"com.waylau.rest.bean& ...
- java 导出word xml格式_关于Java导出Word文件
做个很多个项目里基本上都涉及了word.Excel导入导出,虽然其中的要求有些小差异,不过总的方向上变化不大,所以做一些总结: 一).利用freemarker,制作xml模版导出word Xml模版部 ...
- JAXB实现java对象与xml之间转换
一.Jaxb处理java对象和xml之间转换常用的annotation有: 1. @XmlType 2. @XmlElement 3. @XmlRootElement 4. @XmlAttribute ...
- 使用JAXB将XML Schema绑定到Java类
http://blog.csdn.net/zsyspace/article/details/1786079 Java Architecture for XML Binding (JAXB) 是一项可以 ...
最新文章
- 数据结构二:排序(快速排序和堆排序)
- asp.net + ajax + sqlserver 自动补全功能,asp.net+ajax+sqlserver自动补全功能实现解析
- Java元宵趣图_2019元宵节,猪你元宵节快乐
- WPF中嵌套charts图表查询数据
- 路由器信息备份还原指南
- linux检查启动与否,关于linux启动的问题。
- subsonic杂记
- NetMeeting不能共享桌面的解决办法
- CS和BS 到底是什么
- pdf转word好用的软件
- html添加启动项,windows boot manager启动项是什么
- 解锁小众网站 站在巨人的肩膀上
- mc:Ignorable=d什么意思?
- 用python画玫瑰花
- ibm服务器卡在开机界面_使用HTTPS配置IBM Integration Bus Web用户界面
- k线图 TradingVeiw --简介篇
- 商业银行管理(ROSE) 思维导图
- App中根据多个字段检索功能总结
- 省首例AI犯罪案:归咎技术是欲加之罪?
- 计算机设计大赛指导老师的申报书,附件大赛作品申报书.DOC