java实体 和 xml相互转换
参考:
https://blog.csdn.net/LookForDream_/article/details/88884316
https://zhuchengzzcc.iteye.com/blog/1838702
核心代码
import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter;import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller;import org.slf4j.Logger; import org.slf4j.LoggerFactory;import dns.rsdnscount.entity.SlaveEntity; import dns.rsdnscount.entity.SlavesEntity; public class XmlUtils {private static Logger logger = LoggerFactory.getLogger(XmlUtils.class);public static void main(String[] args) { /* SlavesEntity list=new SlavesEntity();SlaveEntity ent=new SlaveEntity();ent.setHost("master");ent.setPort("3306");ent.setUserName("user1");ent.setRemoteResultPath("/home/user");list.getEntitys().add(ent);SlaveEntity ent2=new SlaveEntity();ent2.setHost("master2");ent2.setPort("3306");ent2.setUserName("user2");ent2.setRemoteResultPath("/home/user2");list.getEntitys().add(ent2);String xxx=convertToXml(list,"utf-8",true);System.out.println(xxx);*/try {SlavesEntity ents=convertToJava(new File("conf/slaves.xml"), SlavesEntity.class);for (SlaveEntity ent : ents.getEntityList()) {System.out.println(ent);}} catch (IOException e) {// TODO Auto-generated catch block e.printStackTrace();}}/*** JavaBean转换成xml* * @param obj* @param encoding* @return*/public static String convertToXml(Object obj, String encoding, boolean format) {String result = null;StringWriter writer = null;try {JAXBContext context = JAXBContext.newInstance(obj.getClass());Marshaller marshaller = context.createMarshaller();marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, format);marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);writer = new StringWriter();marshaller.marshal(obj, writer);result = writer.toString();} catch (Exception e) {logger.error(e.getMessage(), e);} finally {if (writer != null){try {writer.close();} catch (IOException e) {e.printStackTrace();}}}return result;}/*** xml转换成JavaBean* * @param xml* @param c* @return*/@SuppressWarnings("unchecked")public static <T> T convertToJava(String xml, Class<T> c) {if (xml == null || xml.equals(""))return null;T t = null;StringReader reader = null;try {JAXBContext context = JAXBContext.newInstance(c);Unmarshaller unmarshaller = context.createUnmarshaller();reader = new StringReader(xml);t = (T) unmarshaller.unmarshal(reader);} catch (Exception e) {logger.error(e.getMessage(), e);} finally {if (reader != null)reader.close();}return t;}@SuppressWarnings("unchecked")public static <T> T convertToJava(File filePath, Class<T> c) throws IOException {if (!filePath.exists())return null;T t = null;FileReader reader = null;try {JAXBContext context = JAXBContext.newInstance(c);Unmarshaller unmarshaller = context.createUnmarshaller();reader = new FileReader(filePath);t = (T) unmarshaller.unmarshal(reader);} catch (Exception e) {logger.error(e.getMessage(), e);} finally {if (reader != null)reader.close();}return t;} }
实体类
import java.util.LinkedList;import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement;@XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name="slavesList") public class SlavesEntity{@XmlElementWrapper(required=true,name="entitys")@XmlElement(name="entity")LinkedList<SlaveEntity> entityList=new LinkedList<SlaveEntity>();public LinkedList<SlaveEntity> getEntityList() {return entityList;}public void setEntityList(LinkedList<SlaveEntity> entityList) {this.entityList = entityList;}} import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType;@XmlAccessorType(XmlAccessType.FIELD) @XmlType(propOrder = { "host", "port", "userName", "remoteResultPath", }) public class SlaveEntity {String host;String userName;String port;@XmlElement(required=false,name="remoteResultPath")String remoteResultPath;public String getHost() {return host;}public void setHost(String host) {this.host = host;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getPort() {return port;}public void setPort(String port) {this.port = port;}public String getRemoteResultPath() {return remoteResultPath;}public void setRemoteResultPath(String remoteResultPath) {this.remoteResultPath = remoteResultPath;}@Overridepublic String toString() {return "SlaveEntity [host=" + host + ", userName=" + userName + ", port=" + port + ", remoteResultPath="+ remoteResultPath + "]";} }
转载于:https://www.cnblogs.com/yanghaolie/p/11110991.html
java实体 和 xml相互转换相关推荐
- java实体在xml和json之间相互转换
在我们Java开发 接口调试过程中 经常会遇到 实体转换长json.xml 或者json 转换成实体.xml 等多种情况,今天博主给大家详细举例: 1.原生实体与json 相互转换: User us ...
- Java对象与XML、Excel、TXT文件相互转换
一.目的 文件的存储与导出java对象,文件格式包括xml.txt.xlxs三种文件格式 二.准备 Student 类 /*** 学生的信息(学号.姓名.电话.邮箱信息)** @ClassName S ...
- c语言xml序列化,C# XML和实体类之间相互转换(序列化和反序列化)
我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改. using System; using System.Collections.Ge ...
- 复杂的xml转化为java实体
一.样例一: 以根据订单号向支付宝查询支付是否成功为例(成功信息) 失败信息: <?xml version="1.0" encoding="utf-8"? ...
- ibatis学习笔记(三)java实体跟表映射.xml文件详解
在项目中使用Ibatis难免会使用到java实体跟表映射.xml. <?xml version="1.0" encoding="UTF-8" ?> ...
- C#实现实体类和XML相互转换
一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T& ...
- mybatis mapper.xml数据库映射生成java实体,增删改查sql语句
1.问题描述:使用mybatis生成mapper.xml文件的时候经常遇到数据库表字段很多,写mapper.xml文件时转化成java实体很麻烦,写增删改查的sql时也要做 很多重复的工作.程序员就想 ...
- Xml转Java实体类对象 xml转Javabena 对象 且多级嵌套 复杂嵌套
最近在做企微开发,遇到了一个比较复杂的xml然后要去我将xml转成实体类 xml如下 <xml><ToUserName><![CDATA[toUser]]>< ...
- JAXB处理java对象与xml格式之间的转换
JAXB(Java Architecture for XML Binding)是J2SE和J2EE平台的一部分,让开发者能够快速完成Java类和XML的互相映射.一些具体的介绍和使用可以到此细看:JA ...
最新文章
- illegal escape character in String literal
- javascript中处理时间戳为日期格式的方法
- 文巾解题 283. 移动零
- 边记边学PHP-(十五)MySQL数据库基础操作2
- SQLite在指定列后面插入字段_个人学习系列 - 防止MySQL重复插入数据
- Mr.J--JS事件监听(捕获冒泡)
- win32——消息循环 原理 函数 GetMessage PeekMessage TranslateMessage SendMessage PostMessage...
- 8 适用于 Keras 用户的 TensorFlow.js 层 API
- ACCESS数据库C#操作类(SQLHELPER修改版)——转自网上
- 14个非常棒的 JavaScript 游戏开发框架推荐
- 国民经济行业分类 GB/T 4754-2017 最新2017版 代码整理
- HTTP下载龙卷风系列Office/Photoshop/金山词霸快译/
- win10系统对计算机要求,Win10系统对电脑配置要求 win10专业版教程
- Python面试简历工作描述写法总结
- 网易有道能否异军突起—网易押宝
- Kubernetes切换Docker容器引擎为Containerd
- 软件规模估算常用的5种方法及实用工具。
- 仅需简单的文字描述,即可把文字转图片
- Python实现淘宝爬取——奶粉销售信息爬取及其数据可视化
- 深度学习之NIN模型结构全解析
热门文章
- 122. Best Time to Buy and Sell Stock II
- 一些杂感杂想(一)谈谈加班、团队
- How run Powershell ISE on WIndows Server2008
- entity、model和domain三者区别
- 传说中的CAFEBABE到底在哪儿?
- 是什么影响了MySQL性能?
- GitHub 上万 star 项目大佬的自谦:一个学渣的阿里之路
- Redis:常见的面试题
- Java 中静态代码块 static的作用及用法
- org.hibernate.transientobjectexception:The given object has a null identifier: com.gxuwz.check.entit