xml转json

安装包

        <dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.15.3</version></dependency>

使用

类定义

@Data
@JacksonXmlRootElement(localName = "room")
public class Room {/*** 房间名称*/@JacksonXmlProperty(localName = "name")private String name;/*** 房间号*/@JacksonXmlProperty(localName = "no")private Integer no;/*** 其他信息*/@JacksonXmlProperty(localName = "info")private Info info;/*** 学生*/@JacksonXmlElementWrapper(localName = "students")@JacksonXmlProperty(localName = "student")private List<Student> students;/*** 老师*/@JacksonXmlElementWrapper(useWrapping = false)@JacksonXmlProperty(localName = "teacher")private List<Teacher> teachers;@Datapublic static class Student {@JacksonXmlProperty(localName = "name")private String name;@JacksonXmlProperty(localName = "age")private Integer age;}@Datapublic static class Teacher {@JacksonXmlProperty(localName = "name")private String name;@JacksonXmlProperty(localName = "age")private Integer age;}@Datapublic static class Info {@JacksonXmlProperty(localName = "address")private String address;/*** 人数*/@JacksonXmlProperty(localName = "number")private Integer number;}
}

toStringXml

Room room = new Room();room.setNo(1);room.setName("天水一班");Room.Info info = new Room.Info();info.setAddress("天水");info.setNumber(5);room.setInfo(info);ArrayList<Room.Teacher> teachers = new ArrayList<>();Room.Teacher teacher = new Room.Teacher();teacher.setAge(40);teacher.setName("王老师");teachers.add(teacher);Room.Teacher teacher2 = new Room.Teacher();teacher2.setAge(45);teacher2.setName("曾老师");teachers.add(teacher2);room.setTeachers(teachers);ArrayList<Room.Student> students = new ArrayList<>();Room.Student student = new Room.Student();student.setAge(18);student.setName("张三");students.add(student);Room.Student student2 = new Room.Student();student2.setAge(19);student2.setName("李四");students.add(student2);Room.Student student3 = new Room.Student();student3.setAge(19);student3.setName("王五");students.add(student3);room.setStudents(students);String xmlString = XmlUtil.toXMLString(room);System.out.println(xmlString);
// 打印========>//        xmlString = "<room>\n" +
//                "    <name>天水一班</name>\n" +
//                "    <no>1</no>\n" +
//                "    <info>\n" +
//                "        <address>天水</address>\n" +
//                "        <number>5</number>\n" +
//                "    </info>\n" +
//                "    <students>\n" +
//                "        <student>\n" +
//                "            <name>张三</name>\n" +
//                "            <age>18</age>\n" +
//                "        </student>\n" +
//                "        <student>\n" +
//                "            <name>李四</name>\n" +
//                "            <age>19</age>\n" +
//                "        </student>\n" +
//                "        <student>\n" +
//                "            <name>王五</name>\n" +
//                "            <age>19</age>\n" +
//                "        </student>\n" +
//                "    </students>\n" +
//                "    <teacher>\n" +
//                "        <name>王老师</name>\n" +
//                "        <age>40</age>\n" +
//                "    </teacher>\n" +
//                "    <teacher>\n" +
//                "        <name>曾老师</name>\n" +
//                "        <age>45</age>\n" +
//                "    </teacher>\n" +
//                "</room>";

toJson

String xmlString = "<room>\n" +"    <name>天水一班</name>\n" +"    <no>1</no>\n" +"    <info>\n" +"        <address>天水</address>\n" +"        <number>5</number>\n" +"    </info>\n" +"    <students>\n" +"        <student>\n" +"            <name>张三</name>\n" +"            <age>18</age>\n" +"        </student>\n" +"        <student>\n" +"            <name>李四</name>\n" +"            <age>19</age>\n" +"        </student>\n" +"        <student>\n" +"            <name>王五</name>\n" +"            <age>19</age>\n" +"        </student>\n" +"    </students>\n" +"    <teacher>\n" +"        <name>王老师</name>\n" +"        <age>40</age>\n" +"    </teacher>\n" +"    <teacher>\n" +"        <name>曾老师</name>\n" +"        <age>45</age>\n" +"    </teacher>\n" +"</room>";Room parse = XmlUtil.parse(xmlString, Room.class);System.out.println(parse);

点击查看完整代码示例(觉得有用,帮忙在githup项目star一下)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/759916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的FastAPI 快速入门

你好&#xff0c;我是 shengjk1&#xff0c;多年大厂经验&#xff0c;努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注&#xff01;你会有如下收益&#xff1a; 了解大厂经验拥有和大厂相匹配的技术等 希望看什么&#xff0c;评论或者私信告诉我&#xff01; 文章目录 一…

《算法王晓东》多处最优服务次序问题

多处最优服务次序问题 题目描述 设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≤i≤n。共有s处可以提供此项服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小? 平均等待时间是n个顾客等待服务时间的总和除以n。 算法设计&#xff1a;对于给定的n个顾…

41 物体检测和目标检测数据集【李沐动手学深度学习v2课程笔记】

目录 1. 物体检测 2. 边缘框实现 3.数据集 4. 小结 1. 物体检测 2. 边缘框实现 %matplotlib inline import torch from d2l import torch as d2ld2l.set_figsize() img d2l.plt.imread(../img/catdog.jpg) d2l.plt.imshow(img);#save def box_corner_to_center(boxes):&q…

CY7C144

关于CY7C144和CY7C145这两款双端口静态随机存取存储器&#xff08;Dual-Port SRAM&#xff09;的数据手册&#xff0c;由Cypress Semiconductor公司生产。以下是文档的翻译内容和详细解读&#xff1a; 特性 真正的双端口存储单元&#xff0c;允许同时读取同一内存位置CY7C144…

javascript的词法结构

js的标识符也就是名字&#xff0c; 必须以 字母、下划线、或$符号开头 unicode js程序是使用Unicode字符集编写的&#xff0c; 建议只使用ASCII字母和数字&#xff0c;但是语言本身也支持使用Unicode字母 数字和象形文字 不支持标签符号 关于Unicode转义序列 由于假数据硬件和…

设计模式之抽象工厂模式解析

抽象工厂模式 1&#xff09;问题 工厂方法模式中的每个工厂只生产一类产品&#xff0c;会导致系统中存在大量的工厂类&#xff0c;增加系统的开销。 2&#xff09;概述 a&#xff09;产品族 和 产品等级结构 产品等级结构&#xff1a;产品的继承结构&#xff1b; 产品族&…

通俗理解自注意力机制

自注意力机制&#xff08;Self-Attention Mechanism&#xff09; 是一种用于处理序列数据的机制&#xff0c;最初被引入到神经网络模型中&#xff0c;用于在序列数据中建立全局依赖关系。自注意力机制最常用于自然语言处理和计算机视觉领域&#xff0c;特别是在Transformer模型…

Python实战:Pandas数据合并与重塑

本文将深入探讨Pandas库在数据合并与重塑方面的强大功能。我们将涵盖多种数据合并方法&#xff0c;如merge、join、concat等&#xff0c;以及数据重塑的技巧&#xff0c;如pivot_table、merge_asof等。 一、引言 Pandas是一个强大的Python数据分析库&#xff0c;它提供了丰富…

【Flutter】文件选择器(file_picker)的用法

Flutter 没有提供内置的文件选择器&#xff0c;但社区内有人贡献了一个比较完整的解决方案——file_picker。 file_picker 的 API 简洁易用&#xff0c;支持全平台&#xff08;Android / iOS / Mac / Linux / Windows&#xff09;&#xff0c;是我开发桌面应用时的首选。 这边…

HMI界面之:上位机界面设计,一文扫盲

一、什么是上位机 上位机&#xff08;Supervisory Control and Data Acquisition&#xff0c;简称SCADA&#xff09;是一种用于监控和控制工业过程的计算机系统。它通常由两个主要部分组成&#xff1a;上位机和下位机。 上位机是SCADA系统中的主要控制中心&#xff0c;负责监控…

mysql笔记:24. 主从同步环境搭建

文章目录 主从同步的基本原理主从同步的搭建步骤1. 环境准备2. 配置主服务器&#xff08;Master&#xff09;3. 配置从服务器&#xff08;Slave&#xff09;4. 测试配置5. 常见故障5.1. 主从服务器上的MySQL版本不一致导致失败&#xff1f;5.2. Slave_IO_Running状态异常&#…

【No.10】蓝桥杯构造法|两道例题(C++)

什么是构造 构造题 要求解题者通过观察问题的结构和规律&#xff0c;找到一种通用的方法或模式&#xff0c;使得在问题规模增大时&#xff0c;依然能够高效地得到答案。 在解决构造题时&#xff0c;以下几点思考是很重要的: 观察问题规模的增长:了解问题随着规模的增大&…

使用ollama + webui 运行任意大模型

安装ollama https://hub.docker.com/r/ollama/ollama docker run -d -v ~/Documents/work/softs/docker/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama验证安装 # 进入容器docker exec -it ollama bash # 运行大模型 ollama run llama2 # 发送请求&…

【联邦学习贡献评估综述——未来展望(研究点)】

贡献评估的研究展望 参与方贡献评估作为激励参与方加入联邦的关键问题, 目前已有一些探索性研究工作, 但是现有工作在 价值度量有效性和可靠性、贡献评估方案公平合理性、评估算法在联邦学习应用上的性能和安全性等问题上 仍存在不足之处, 有待未来研究攻克这些挑战. 1. 设计…

三级数据库技术考点(详解!!)

1、 答疑:【解析】分布式数据库系统按不同层次提供的分布透明性有:分片透明性;②位置透明性;③局部映像透明性&#xff0c;位置透明性是指数据分片的分配位置对用户是透明的&#xff0c;用户编写程序时只需 要考虑数据分片情况&#xff0c;不需要了解各分片在各个场地的分配情…

大型LLM模型语言全面解读-开篇

目录 由于1万字的要求过于庞大&#xff0c;我将先给出论文的大纲以及部分内容的详细撰写&#xff0c;以确保内容的质量和完整性。如果您需要更完整的内容&#xff0c;可以在之后继续输入。 大型LLM模型语言全面解读 **摘要&#xff1a;**本文旨在对大型语言模型&#xff08;…

什么是物联网远程模块

在数字化和信息化的浪潮下&#xff0c;物联网技术正在以惊人的速度改变着我们的生活和生产方式。物联网远程模块&#xff0c;作为物联网技术的核心组件之一&#xff0c;正引领着这场变革。HiWoo Box就是这样一款出色的物联网远程模块&#xff0c;它通过支持远程透传、远程锁机、…

多进程数据库不适合作为hive的元数据库

简介 “今天发现一个比较奇怪的现象&#xff0c;因为博主不熟悉mysql&#xff0c;所以在安装hive的使用了postgresql作为hive的元数据库&#xff0c;在测试几个连接工具对hive进行链接&#xff0c;后面再测试的时候发现链接不上了&#xff0c;并且报错日志如下&#xff1a;” …

从回收站删除的文件如何恢复?图文详解(3个方法)!

“各位大佬&#xff01;从回收站删除了重要的文件后&#xff0c;有什么方法可以恢复文件吗&#xff1f;快帮帮我吧&#xff01;这些被删除的文件都是比较重要的&#xff01;” 回收站作为电脑中的一个重要工具&#xff0c;当我们误删文件后&#xff0c;通过回收站有机会快速恢复…

QT增加线程函数步骤流程

在使用线程的时候&#xff0c;不仅要关注线程开启的时机&#xff0c;同时还要关注线程安全退出&#xff0c;这样才能保证程序的健壮性&#xff0c;如果线程开启的较多&#xff0c;且开启关闭比较频繁&#xff0c;建议使用线程池来处理。开启线程有三种方式&#xff1a;第一种C的…