首页 > 编程语言 >JAVA实现XML格式数据转JsonObject

JAVA实现XML格式数据转JsonObject

时间:2023-02-20 15:12:00浏览次数:55  
标签:XML xml JAVA JsonObject getName result JSONObject return import

 

xml:

 <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>

 

工具类

 XmlUtil.java

import java.util.List;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.dom4j.*;

/**
 * xml数据转成json
 *
 * @author 。
 */
public class XmlUtil {


    /**
     * 将所有xml数据转成json
     *
     * @param outputXml 要解析的xml数据
     * @return
     * @throws Exception
     */
    public static JSONObject xmlToJson(String outputXml) throws Exception {
        Document document = DocumentHelper.parseText(outputXml);
        Element root = document.getRootElement();
        // 遍历所有子节点
        return elementJson(root);
    }


    /**
     * xml节点转成JsonObject
     *
     * @param node
     * @return
     */
    public static JSONObject elementJson(Element node) {
        JSONObject result = new JSONObject();
        List<Attribute> listAttr = node.attributes();
        for (Attribute attr : listAttr) {
            result.put(attr.getName(), attr.getValue());
        }
        List<Element> listElement = node.elements();
        if (!listElement.isEmpty()) {
            for (Element e : listElement) {
                if (e.attributes().isEmpty() && e.elements().isEmpty()) {
                    result.put(e.getName(), e.getTextTrim());
                } else {
                    if (!result.containsKey(e.getName())) {
                        result.put(e.getName(), new JSONArray());
                    }
                    ((JSONArray) result.get(e.getName())).add(elementJson(e));
                }
            }
        }
        return result;
    }


}

 

使用

 public static void main(String[] args) throws Exception {
        String str="<?xml version=\"1.0\" encoding=\"utf-8\"?><root><Header><resultCode>0</resultCode></Header><Body><Desc>你好</Desc></Body></root>";
        System.out.println(XmlUtil.xmlToJson(str));
    }

 

结果  获取的是去掉根节点后的数据

{"Header":[{"resultCode":"0"}],"Body":[{"Desc":"你好"}]}

 

 

 

JAVA实现map集合转Xml格式,参考:https://www.cnblogs.com/pxblog/p/14006009.html

 

标签:XML,xml,JAVA,JsonObject,getName,result,JSONObject,return,import
From: https://www.cnblogs.com/pxblog/p/17137487.html

相关文章

  • C#操作XML文件
    加载staticstringstrPath="Employee.xml";staticstringstrID="";//窗体加载时加载XML文件privatevoidForm1_Load(objectsend......
  • Error:java:无效的源发行版:12
    问题描述:程序无法运行,无效的源发行版:12错误。使用idea运行项目的时候,报出错误:无效的源发行版:XXX,这是因为idea设置的jdk版本和运行的项目版本的jdk版本号不匹配。如果项目j......
  • 通过使用java获取地图切片
    主要为了腾讯地图PictureCut.javapublicclassPictureCut{/***@paramsrcImageFile源图像地址*@paramdescImageFile切片目标文件夹*@pa......
  • Java多线程分块下载器
    '''javaimportjava.io.*;importjava.net.HttpURLConnection;importjava.net.URL;importjava.nio.file.Files;importjava.nio.file.Path;importjava.nio.file.S......
  • C、C++、python、java
    C++和Python的区别python是一种脚本语言,是解释执行的,而C++是编译语言,是需要编译后在特定平台运行的。python可以很方便的跨平台,但是效率没有C++高。Python使用缩进来区......
  • Java流程控制
    Java流程控制Scanner对象next():一定要读取到有效字符后才可以结束输入对输入有效字符之前遇到的空白,next()方法会自动将其去掉只有输入有效字符后才能将其后面的......
  • Java基本语法
    Java基础语法注释单行注释//这是一行注释多行注释/*这是一行注释这是一行注释这是一行注释*/文档注释/***这是文档注释*这是文档注释*这是文档注......
  • Java开发词汇
    Java基础常见英语词汇(70个)OO:object-oriented,面向对象OOP:object-orientedprogramming,面向对象编程JDK:Javadevelopmentkit,java开发工具包JVM:javavirtual......
  • java 判断字符串是否为空的四种方法
    以下是java判断字符串是否为空的四种方法:方法一:最多人使用的一个方法,直观,方便,但效率很低:if(s==null||s.equals(""));方法二:比较字符串长度,效率高,是我......
  • nohup java -jar启动jar包,war包以及nohup和&的区别
    nohupjava-jara.jar>a.log2>&1&上面的命令意识: 1. nohup:不挂断地运行命令。nohangup的缩写,意即“不挂断”,注意没有后台运行功能,如果你直接在shell中用CtrlC,......