dto与xml互转(使用jdk的xml注解实现)

java 使用 JAXB 将xml转换为 bean 包含xml和dto和读取文件的util类 立即下载

效果实现:

难度不大主要是之前自己对于jdk下面的xml包没有用过,摸索了一个下午才拼凑出来想要的效果,下面根据报文从上往下解释代码跟注解:

 首先是package-info.java上加上包注解@XmlSchema,这个文件也是第一次使用,可以理解成包级别的统一注释

接下来就是报文体:

因为ase那一块大概率需要复用所以将它抽出去了,最终就是这个testase对象包含了Header与Transactions两块内容

最后是内容:

 

这样基本就完成了,主要要知道几个注解的用法,里面主要涉及了xmlelement,xmlattribute,xmlvalue,可以根据实现效果理解一下就行了,如果没接触过的话看了看注解的注释也没太明白所以试了试耽误了些时间

剩下的就是弄一个xmlutil了:

public class XMLUtil {

    public static final String DEFAULT_ENCODING = "UTF-8";

    public static <R> R xml2Dto(String xmlStr, Class<R> clazz) throws JAXBException {
        JAXBContext context = JAXBContext.newInstance(clazz);
        // 进行将Xml转成对象的核心接口
        Unmarshaller unmarshaller = context.createUnmarshaller();
        StringReader sr = new StringReader(xmlStr);
        R r = (R) unmarshaller.unmarshal(sr);

        return r;

    }

    public static String dto2Xml(Object o) throws Exception {
        return convertToXml(o, DEFAULT_ENCODING);
    }

    private static String convertToXml(Object obj, String encoding) throws Exception {
        JAXBContext context = JAXBContext.newInstance(obj.getClass());
        Marshaller marshaller = context.createMarshaller();
        // 指定是否使用换行和缩排对已编组 XML 数据进行格式化的属性名称。
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding);

        StringWriter writer = new StringWriter();
        marshaller.marshal(obj, writer);
        String result = writer.toString();

        return result;
    }

网上抄的现成的,改改入参的事 

任意XML转实体类 实体类 转XML 方法 JAVA XML 节点名称 要与Bean相同 该项目 包含测试代码 可以演示。 节点属性 可以为String 多层节点 请用List表示 立即下载

相关推荐

XML转成Java的DTO和Entity

XML转成Java的DTO和Entity

JavaBean实体类转换为XML

/** * JavaBean转换成xml * * @param obj 将要转换的对象 * @param encoding 字符编码 * @return */ public static String convertToXml(Object obj, String encoding) { String result = null; try { JAXBCo...

LeiJie.Gao 1105

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 715

复杂dto(包括对象以及对象集合)转化为 xml,json,并发送xml,json,soap格式的报文

##前言 因项目需要,需要将一个复杂的对象(包括对象及对象集合)转化为json,xml.并组装通过HttpClient发送post请求的json,xml,soap格式报文。在解析xml时选择采用JAXB,能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON。 ##dto对象(包括对象以及对象集合) 《...

suchen0440的博客 3291

并行计算:从概念起源到多层次架构设计及其发展历程的全面解析

20世纪70年代,第一台并行计算机于1972年产生(ILLIAC IV,伊利诺依大学),由64个处理器组成,可扩展性好,但可编程性差。如有21亩地需要除草,一个人一天只能除一亩地的草,那么需要21天才能除完草,这在现实中是不太可能的,因庄稼是有时间段的。其二是机群系统是高性能计算机的一种,它的技术基础和工业基础都是商品化和标准化。之所以称为“专用”,并不是说它们只能运行某种应用,是指它们的组成部件是专门设计的,它们的CPU板、内存板和I/O板,甚至操作系统,都是不能在其它系统中使用的。

1654

CANoe进阶实战(第十一章)-LIN节点测试调度

《CANoe快速入门实战:LIN节点调度开发》摘要 本文是CANoe系列教程的第十一章,重点讲解如何通过CAPL编程实现LIN报文的灵活调度控制。文章采用"输入-输出-过程"三步骤法,详细介绍了调度表函数linChangeSchedTable()、启动/停止函数linStartScheduler()/linStopDisturbance()等关键API的使用方法。作者创新性地通过系统变量在Test节点间接控制Network节点的调度功能,并提供了完整的节点代码实现方案。最后的Trace窗

weixin_53605885的博客 1022

Java实现DOM文档操作和XML文件互相转换

1. DOM简介   目前,W3C已于2000年11月13日推出了规范DOM level 2。文档对象模型(DOM)是HTML和XML文档的编程接口规范,它与平台和语言是无关的,因而可以用各种语言在各种平台上实现。该模型定义了THML和XML文件在内存中的逻辑结构(即为文档),提供了访问、存取THML和XML文件的方法。利用DOM规范,可以实现DOM 文档和XML之间的相互转换,遍历、操作相应DO

dongliheng的专栏 1119

Mac用户必看:PD虚拟机网络初始化失败的3分钟修复指南(附详细截图)

本文针对Mac用户在Parallels Desktop(PD虚拟机)启动时遇到的“网络初始化失败”问题,提供了快速诊断与修复指南。核心原因是macOS系统更新后权限未正确授予。文章通过详细的三步修复法(关闭进程、修改配置文件、重新授权重启),帮助用户在3分钟内恢复虚拟机网络连接,并附有排查清单与预防建议。

weixin_29231027的博客 537

SpringBoot实战:VO与DTO互转的5种高效方法(附性能对比)

本文深入探讨SpringBoot中VO与DTO互转的5种高效方法,包括手工硬编码、Spring BeanUtils、MapStruct、ModelMapper和Lambda转换流,并附有详细的性能对比数据。通过实测分析,揭示不同转换方案在性能、内存消耗和适用场景上的优劣,帮助开发者优化微服务架构中的对象转换效率。

grafana6viz的博客 183

数字签名(Digital Signature)技术详解:从原理到实践

数字签名技术是数字世界身份认证和数据完整性的核心保障。它结合非对称加密和哈希函数两大密码学技术,实现双重安全防护:哈希函数确保数据完整性,非对称加密确保签名不可伪造。签名过程包括发送方用私钥加密文件哈希值生成签名,接收方用公钥验证签名并比对哈希值。RSA、DSA、ECDSA等主流算法各有特点,适用于不同场景。公钥基础设施(PKI)通过数字证书和CA认证建立信任链,确保公钥真实性。这套技术体系支撑着电子合同、软件认证、在线交易等各类数字安全应用,是现代网络信任体系的基石。

guigenyi的专栏 1365

STM32内存大小与地址的对应关系以及计算方法

1、概述 在计算机中要访问存储区,都是通过地址来进行访问的,包括所有的外设(比如串口、内存、硬盘等),都对应有一个访问地址,地址就相当于门牌号,有了门牌号,我们才知道操作的是哪一个区域、哪一个外设。 最被大家熟知的是计算机内存,计算机内存有4G、8G,16G等等,对于程序员而言,要在代码中操作这些内存,肯定得知道内存的地址,此外,还需要会计算地址与内存大小的计算方法与对应关系。STM32作为微

Ace's Blog 4万+

DTOQuery 实现一个DTO完成查询的奇迹

第一次发表这么正式的博客,内心还是有点忐忑。首先感谢正在阅读本文的大家,如有写的不对的地方,还请大家海涵,如能不吝赐教那就更加感谢了。本博文主要是想介绍一下本人开发的“DTOQuery”一款ORM框架,其实不能说是ORM框架,主要还是站在现在主流的ORM框架的基础上进行开发, 主要目的是减少学习曲线,并加速开发的效率。当然以上也只是我自己觉得,是否真的达到了这样的效果,或者说在未来能否能达到这样的效果, 还要请各位多多的赐教了,这里我先抛砖引玉。其次目前只对mySql 进行了实现,也预留了其他数据库的实现接

qq_37719795的博客 1091

Doris实战——结合Flink构建极速易用的实时数仓

Doris实战——结合Flink构建极速易用的实时数仓

爱吃辣条的博客 8226

Java对象和XML相互转换

最近在项目中一直出现Java对象和XML之间的相互转换,一开始由于项目很庞大,我又是临时调度过去,导致在按照项目组长的要求进行写代码的同时,总是在这块云里雾里,最近才慢慢开始搞清楚项目中具体的使用缘由。但是项目中封装的代码总是很庞大,因为要考虑太多的东西,而对于此,我只能通过小的Demo来说明,其实在项目中用到很多插件,轻巧,灵便,封装很好使用,但这里我讲解的是JAXB(JavaArchitect...

美好的未来在于把握今天 7万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java对象和xml互转

JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便

小猪奋斗 6148

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SpringBoot项目中集成JAXB实现XML与Java对象的互相转换

一、前言 最近项目中遇到了一个这种需求:版本经理在上游环境通过配置XML的版本策略文件到我们系统,我们得解析XML的版本策略文件来看这些数据是否和我们系统后台的数据相一致,不一致的话,我们后台会去更新版本文件的数据,再通过定时调度把需要更新的版本文件推送给各个局点的设备进行升级。 通过这个需求,我们可以发现业界的XML与Java对象的互相转换的是JAXB(Java Architecture for...

riemann_的博客 9282

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

玩转Java对象和XML相互转换

最近在项目中一直出现Java对象和XML之间的相互转换,一开始由于项目很庞大,我又是临时调度过去,导致在按照项目组长的要求进行写代码的同时,总是在这块云里雾里,最近才慢慢开始搞清楚项目中具体的使用缘由。但是项目中封装的代码总是很庞大,因为要考虑太多的东西,而对于此,我只能通过小的Demo来说明,其实在项目中用到很多插件,轻巧,灵便,封装很好使用,但这里我讲解的是JAXB(Java Architec

pan-zy的专栏 1万+

jaxb xml to java_SpringBoot项目中集成JAXB实现XML与Java对象的互相转换

一、前言最近项目中遇到了一个这种需求:版本经理在上游环境通过配置XML的版本策略文件到我们系统,我们得解析XML的版本策略文件来看这些数据是否和我们系统后台的数据相一致,不一致的话,我们后台会去更新版本文件的数据,再通过定时调度把需要更新的版本文件推送给各个局点的设备进行升级。通过这个需求,我们可以发现业界的XML与Java对象的互相转换的是JAXB(Java Architecture for X...

weixin_29094775的博客 407

XStream系列之(3) - SpringBoot中集成JAXB实现XML与Java对象的互相转换

一、前言 最近项目中遇到了一个这种需求:版本经理在上游环境通过配置XML的版本策略文件到我们系统,我们得解析XML的版本策略文件来看这些数据是否和我们系统后台的数据相一致,不一致的话,我们后台会去更新版本文件的数据,再通过定时调度把需要更新的版本文件推送给各个局点的设备进行升级。 通过这个需求,我们可以发现业界的XML与Java对象的互相转换的是JAXB(Java Architecture for XML Binding) ,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了

u010349272的博客 1474

详解POJO:普通Java对象与JavaBean、Entity、DTO的边界

在Java开发中,对象是数据与行为的载体,而POJO、JavaBean、Entity、DTO等术语常让初学者甚至资深工程师混淆。POJO即Plain Old Java Object,强调一个普通Java对象不继承框架基类、不实现容器接口、不依赖外部运行环境,new即可使用。这一理念源于对EJB重量级容器复杂度的反思,也是Hibernate、Spring等轻量级框架得以流行的思想基础。理解POJO的真正价值,在于理清依赖方向:对象应保持简单,由框架适配对象而非对象迁就框架。在分层架构中,DTO、VO、Enti

weixin_28698059的博客 234

java注解枚举转换器,SpringBoot -生成Entity和Dto互转的双向枚举类 -使用注解@Mapper(componentModel = "spring")...

1.导入pom文件 ,版本号自定org.mapstructmapstruct-jdk81.2.0.CR1org.mapstructmapstruct-processor1.2.0.CR1provided2.举例编写Training的双向枚举类TrainingConverterimport org.mapstruct.Mapper;@Mapper(componentModel = "spring")...

weixin_39823200的博客 746

IDEA 插件发布实战:从 vo2dto 上架 JetBrains 插件市场看审核避坑、安装与使用全流程

> 本文基于 CodeGuide 仓库中《IDEA 插件开发》系列实战记录,以作者小傅哥开发的 **vo2dto** 对象转换插件为例,完整还原一款 IntelliJ IDEA 插件从开发完成、提交 JetBrains 插件市场审核、通过审核后安装使用,再到持续迭代维护的全过程。读者读完既能掌握 IDEA 插件发布的具体流程与审核要求,也能理解 vo2dto 这类"一键生成 `x.set(y.ge

gitblog_06850的博客 234
下一篇: 后端springboot主动推送消息给前端vue
programmer_cjl
博客等级 码龄8年 2粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值