使用JAXB将Java对象转xml
文章目录
- 使用JAXB将Java对象转xml
- 1. 要求生成的xml
- 2. Java对象
- 3. 封装的工具类
- 4. 测试
使用JAXB将Java对象转xml
1. 要求生成的xml
<?xml version="1.0" encoding="UTF-8" ?>
<root><result status="success" msg="成功"/>
</root>
2. Java对象
RootVO.java
@Data
@XmlRootElement(name = "root")
@XmlAccessorType(XmlAccessType.FIELD)
public class RootVO {@XmlElement(name = "result")public ResultVO result;@Data@NoArgsConstructor@AllArgsConstructor@XmlRootElement(name = "result")@XmlAccessorType(XmlAccessType.FIELD)public static class ResultVO{@XmlAttribute(name = "status")public String status;@XmlAttribute(name = "msg")public String msg;}
}
3. 封装的工具类
XmlUtil.java
public class XmlUtil {public static String objToXml(Object obj) {try {//创建JAXB对象,用于映射java类和xmlJAXBContext context = JAXBContext.newInstance(obj.getClass());//创建Marshaller对象,用于将java对象序列化为xmlMarshaller marshaller = context.createMarshaller();//设置编码格式marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");//格式化生成xmlmarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();//将java对象序列化为xmlmarshaller.marshal(obj, byteArrayOutputStream);return byteArrayOutputStream.toString("UTF-8");} catch (JAXBException | UnsupportedEncodingException e) {e.printStackTrace();}return null;}
}
4. 测试
public static void main(String[] args) {RootVO rootVO = new RootVO();RootVO.ResultVO resultVO = new RootVO.ResultVO("success","成功");rootVO.setResult(resultVO);String xmlContent = XmlUtil.objToXml(rootVO);System.out.println(xmlContent);}
输出结果:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root><result status="success" msg="成功"/>
</root>
取掉standalone
public static void main(String[] args) {RootVO rootVO = new RootVO();RootVO.ResultVO resultVO = new RootVO.ResultVO("success","成功");rootVO.setResult(resultVO);String xmlContent = XmlUtil.objToXml(rootVO);System.out.println(xmlContent.replace("standalone=\"yes\"", ""));}
输出结果:
<?xml version="1.0" encoding="UTF-8" ?>
<root><result status="success" msg="成功"/>
</root>
相关文章:
使用JAXB将Java对象转xml
文章目录 使用JAXB将Java对象转xml1. 要求生成的xml2. Java对象3. 封装的工具类4. 测试 使用JAXB将Java对象转xml 1. 要求生成的xml <?xml version"1.0" encoding"UTF-8" ?> <root><result status"success" msg"成功&qu…...
Atlas 200 DK开发板问题总结
1.fatal error: acl/acl.h: No such file or directory 该问题是因为在设置的DDK环境变量下找不到头文件。 解决方法: 1)输入echo $DDK,查看当前DDK地址 2)在src文件夹下找到CMakeLists.txt文件,发现该文件有一个变量名…...
uniapp——实现二维码生成+保存二维码图片——基础积累
最近在做二维码推广功能,自从2020年下半年到今天,大概有三年没有用过uniapp了,而且我之前用uniapp开发的程序还比较少,因此很多功能都浪费了很多时间去查资料,现在把功能记录一下。 这里写目录标题 效果图1.根据接口返…...
零基础学前端(六)重点讲解 JavaScript
1. 该篇适用于从零基础学习前端的小白,完全从零基础角度出发 2. 我们学习时,应该主动向自己提问?只有你能提出问题,你才算是在编程中学习进步了。 3. 初学者不懂得问题很多,在自己在不懂时,一定要求助有经验…...
数据库问题记录(粗略版)oracle、mysql等主流数据库通用
1. ORA-00918:未明确定义列 该问题情况大致为:select 所取列名错误、重复等问题。 2. “select * from temp where 10; ”的含义 布尔值为FALSE,只返回表结构,不返回数据。 举一反三: select * from temp where 1&…...
ORACLE多列中取出数据最大的一条
1.需求说明: 当查询出来的数据存在多条数据时,想按照一定条件排序取出其中一条数据。 2.使用函数: row_number() over( partition by 分组字段 order by 排序字段 desc) 3.示例: --根据table_a中的pk_house&#x…...
Xamarin.Android实现App内版本更新
目录 1、具体的效果2、代码实现2.1 基本原理2.2 开发环境2.3 具体代码2.3.1 基本设置2.3.2 系统的权限授予2.3.3 进度条的layout文件2.3.4 核心的升级文件 3、代码下载4、知识点5、参考文献 1、具体的效果 有事需要在程序内集成自动更新的功能,网上找了下ÿ…...
运维工程师面经
文章目录 前言RedisMongoDBPython中的GIL(全局解释器锁)Python算法总结 前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: Redis 参考网址 NoSQL技术 基于内存的数据库,并且提供一定的持久化功能…...
stm32之智能垃圾桶实战
之前用过51做过一个垃圾桶的小项目,这里用32重新搞了一下。视频的效果和之前一样,可参考这个垃圾桶效果 。 一、项目描述(同51) 项目主要是模拟不用手动打开垃圾桶盖,而进行自动操作。自动打开的条件如下:…...
【C++面向对象侯捷下】2.转换函数 | 3.non-explicit-one-argument ctor
文章目录 operator double() const {} 歧义了 标准库的转换函数...
UOS Deepin Ubuntu Linux 开启 ssh 远程登录
UOS Deepin Ubuntu Linux 开启 ssh 远程登录 打开控制台 安装 openssh-server sudo apt -y install openssh-server修改 /etc/ssh/ssh_config 文件 sudo vim /etc/ssh/ssh_config找到 # Port 22 去掉 # 注释后 保存 重启 ssh 服务 sudo systemctl restart ssh设置 ssh 服务 开机…...
Postman应用——接口请求和响应(Get和Post请求)
文章目录 新增Request请求Get请求Post请求 Request请求响应Postman响应界面说明请求响应另存为示例(模板)Postman显示的响应数据清空请求响应数据保存到本地文件 这里只讲用的比较多的Get和Post请求方式,也可以遵循restful api接口规范&#…...
Linux查看哪些进程占用的系统 buffer/cache 较高 (hcache,lsof)命令
1、什么是buffer/cache ? buffer/cache 其实是作为服务器系统的文件数据缓存使用的,尤其是针对进程对文件存在 read/write 操作的时候,所以当你的服务进程在对文件进行读写的时候,Linux内核为了提高服务的读写速度,则将…...
(Vue2)自定义创建项目、ESLint、Vuex
自定义创建项目:基于VueCli自定义创建项目架子 安装脚手架->创建项目->选择自定义->Babel/Router/CSS/Linter 路由配置项很多,希望创建项目时就把架子搭好 hash模式和history模式 页面跳转和加载模式 Vue为单页面,只有一个HTML…...
LLaMa
文章目录 Problems403 代码文件LLaMA: Open and Efficient Foundation Language Models方法预训练数据结构优化器一些加速的方法 结果Common Sense ReasoningClosed-book Question AnsweringReading ComprehensionMassive Multitask Language Understanding Instruction Finetu…...
API(九)基于协程的并发编程SDK
一 基于协程的并发编程SDK 场景: 收到一个请求会并发发起多个请求,使用openresty提供的协程说明: 这个是高级课程,如果不理解可以先跳过遗留: APSIX和Kong深入理解openresty 标准lua的协程 ① 早期提供的轻量级协程SDK ngx.thread ngx…...
JavaWeb 学习笔记 7:Filter
JavaWeb 学习笔记 7:Filter 1.快速开始 使用过滤器的方式与 Servlet 类似,要实现一个Filter接口: WebFilter("/*") public class FirstFilter implements Filter {public void init(FilterConfig filterConfig) throws ServletE…...
【AI视野·今日Robot 机器人论文速览 第三十五期】Mon, 18 Sep 2023
AI视野今日CS.Robotics 机器人学论文速览 Mon, 18 Sep 2023 Totally 44 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚GelSplitter, 基于近红外与可见光融合实现高精度surfaceNormal重建的触觉传感器。(from 华中科技大学) 基于分光镜的紧凑型…...
Elasticsearch 在bool查询中使用分词器
1. 创建索引 test setting和mappings 设置了自定义分词映射规则。 PUT /test {"settings": {"analysis": {"filter": {"my_synonym": {"type": "synonym","updateable": true,"synonyms_path&qu…...
在Python中创建相关系数矩阵的6种方法
相关系数矩阵(Correlation matrix)是数据分析的基本工具。它们让我们了解不同的变量是如何相互关联的。在Python中,有很多个方法可以计算相关系数矩阵,今天我们来对这些方法进行一个总结 Pandas Pandas的DataFrame对象可以使用c…...
OneAgent智能体全球发布会圆满落幕:引领金融AI交易新时代
2026年3月25日,聚焦金融AI领域的盛会《OneAgent智能体全球产品发布会》在中国杭州成功落幕。本次发布会吸引了全球金融科技领域的行业专家、投资机构以及技术爱好者的关注,标志着OneAgent在全球AI金融市场的战略布局正式启动。AI原生对冲交易新物种&…...
SDXL 1.0电影级绘图工坊高清图集:1536px输出下4K显示器全屏无像素感展示
SDXL 1.0电影级绘图工坊高清图集:1536px输出下4K显示器全屏无像素感展示 1. 项目简介 SDXL 1.0电影级绘图工坊是一款基于Stable Diffusion XL Base 1.0模型的AI绘图工具,专门为RTX 4090显卡优化设计。这个工具充分利用了4090显卡的24G大显存࿰…...
EDK II代码格式化集成指南:IDE集成步骤详解
EDK II代码格式化集成指南:IDE集成步骤详解 【免费下载链接】edk2 EDK II 项目地址: https://gitcode.com/gh_mirrors/ed/edk2 EDK II作为现代UEFI固件开发的核心框架,其代码质量直接影响到固件的稳定性和安全性。本文将详细介绍如何将EDK II代码…...
nlp_structbert_sentence-similarity_chinese-large实战教程:本地知识库向量化检索完整指南
nlp_structbert_sentence-similarity_chinese-large实战教程:本地知识库向量化检索完整指南 你是不是经常遇到这样的问题:面对公司内部堆积如山的文档、产品手册、客服记录,想找某个特定信息时,却像大海捞针一样困难?…...
别再手动敲代码了!用Tesseract-OCR在Linux上批量处理图片转文字(附Python脚本)
从图片到结构化数据:基于Tesseract-OCR的Linux批量文本提取实战 在数字化办公和自动化流程中,我们经常需要处理大量图片中的文字信息——可能是扫描的合同文档、会议白板照片或是PDF中的非可编辑页面。传统的手动录入不仅效率低下,还容易出错…...
Hunyuan-MT-7B应用案例:国际展会AI同传助手系统后端架构设计
Hunyuan-MT-7B应用案例:国际展会AI同传助手系统后端架构设计 1. 项目背景与需求分析 国际展会现场的同声传译一直是技术难题。传统人工翻译成本高昂,且难以覆盖所有语言组合。随着多语言大模型的发展,AI同传系统成为可行的解决方案。 Huny…...
破解MSG文件解析难题:自动化处理工具让邮件数据提取效率提升90%
破解MSG文件解析难题:自动化处理工具让邮件数据提取效率提升90% 【免费下载链接】msg-extractor Extracts emails and attachments saved in Microsoft Outlooks .msg files 项目地址: https://gitcode.com/gh_mirrors/ms/msg-extractor 在日常办公中&#x…...
Pixel Fashion Atelier实操手册:批量生成时利用CSV导入多组Enchantment参数
Pixel Fashion Atelier实操手册:批量生成时利用CSV导入多组Enchantment参数 1. 引言:为什么需要批量生成功能 在时尚设计领域,设计师经常需要快速生成多个不同风格的服装设计方案。传统方式需要逐个输入参数、等待生成、再调整参数…...
如何通过Akagi提升麻将水平:从新手到高手的智能助手指南
如何通过Akagi提升麻将水平:从新手到高手的智能助手指南 【免费下载链接】Akagi A helper client for Majsoul 项目地址: https://gitcode.com/gh_mirrors/ak/Akagi 你是否在麻将对局中常常面临这样的困境:面对复杂牌局不知如何抉择?想…...
从Go协程到Java 21虚拟线程:一个Gopher的迁移避坑指南与性能对比
从Go协程到Java 21虚拟线程:一个Gopher的迁移避坑指南与性能对比 作为一名长期深耕Go语言生态的开发者,第一次接触Java 21的虚拟线程时,那种熟悉又陌生的感觉令人印象深刻。Go的goroutine以其轻量和高效著称,而Java平台线程的笨重…...
