当前位置: 首页 > news >正文

【工具类】Java优雅的将XML转为JSON格式、XML转JSON

Java优雅的将XML转为JSON格式、XML转JSON

  • 1. 导入依赖
    • 1.1 Maven使用
    • 1.2 Gradle使用
  • 2. 代码编写
  • 3.运行示例

1. 导入依赖

1.1 Maven使用

 		<dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>2.1.3</version></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20210307</version></dependency>

1.2 Gradle使用

dependencies {implementation("org.dom4j:dom4j:2.1.3")implementation("org.json:json:20210307")
}

2. 代码编写

package com.xcc.utils;import com.xcc.pojo.vo.invoice.EInvoice;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Iterator;public class XmlToJsonUtils {public static JSONObject convertToJSON(String xml) throws DocumentException, JSONException {Document document = new SAXReader().read(xml);return parseDocument(document.getRootElement());}private static JSONObject parseDocument(org.dom4j.Element element) throws JSONException {JSONObject json = new JSONObject();Iterator children = element.elementIterator();while (children.hasNext()) {org.dom4j.Element child = (org.dom4j.Element) children.next();if (child.isTextOnly()) {json.put(child.getName(), child.getText());} else {JSONObject childJson = parseDocument(child);if (json.has(child.getName())) {Object existingObject = json.get(child.getName());if (existingObject instanceof JSONObject) {json.accumulate(child.getName(), childJson);} else if (existingObject instanceof org.json.JSONArray) {((org.json.JSONArray) existingObject).put(childJson);}} else {json.put(child.getName(), childJson);}}}return json;}public static void main(String[] args) throws Exception {JSONObject json = convertToJSON("https://csdn.net/xxx.xml");System.out.println(json.toString(2)); // 2 is the indent factor}
}

在这里插入图片描述
注:可以根据不同的业务场景来进行选择 提供URL 直接读取和File文件及InputStream流数据等

3.运行示例

在这里插入图片描述


http://www.mrgr.cn/news/11704.html

相关文章:

  • MySQL面试技术(分页)
  • OpenCV几何图像变换(10)透视变换函数warpPerspective()的使用
  • 算法学习-基础数据结构
  • JUnit 5和Mockito进行单元测试!
  • 【分布式架构幂等性总结】
  • 服务器五大关键组件拆解分析
  • 硬链接和软连接
  • 02- javascript 高阶-构造函数(知识点)呀
  • matlab如何设置产生的随机数一致
  • kubernetes基础知识扫盲
  • 网络防火墙的主要功能及其弊端
  • 终端防火墙软件哪个好?2024年内网安全解决方案!
  • 读取FTP中不同文件格式的文件流后导出到浏览器
  • RabbitMQ 入门教程
  • 卡在恢复模式怎么办?这样操作一键轻松退出iPhone 恢复模式
  • 小程序连接MQTT服务器,以及配置,避坑
  • 单片机LCD1602C语言程序
  • 自然语言处理系列三十九》条件随机场CRF算法原理
  • 鸿蒙内核源码分析(共享内存) | 进程间最快通讯方式
  • 嵌入式Linux学习笔记