import com.alibaba.fastjson.JSONArray;
import org.dom4j.*;
import org.springframework.util.StringUtils;
import java.util.List;
 * @Author: JCccc
 * @Date: 2022-6-15 16:53
 * @Description:
public class MyXmlUtil {
    public static void main(String[] args) throws DocumentException {
        String xmlStr="<dependency>\n" +
                "            <groupId>org.json</groupId>\n" +
                "            <artifactId>json</artifactId>\n" +
                "            <version>20180813</version>\n" +
                "        </dependency>";
        String xmlStrNew="<configuration>\n" +
                "    <settings>\n" +
                "        <setting name=\"useGeneratedKeys\" value=\"true\"/>\n" +
                "        <setting name=\"useColumnLabel\" value=\"true\"/>\n" +
                "        <setting name=\"mapUnderscoreToCamelCase\" value=\"true\"/>\n" +
                "        <setting name=\"logImpl\" value=\"STDOUT_LOGGING\"/>\n" +
                "    </settings>\n"+
                "</configuration>";
        if (StringUtils.hasLength(xmlStr)) {
            com.alibaba.fastjson.JSONObject jsonObject2 = MyXmlUtil.documentToJSONObject(xmlStr);
            System.out.println(jsonObject2);
        if (StringUtils.hasLength(xmlStrNew)) {
            com.alibaba.fastjson.JSONObject jsonObject2 = MyXmlUtil.documentToJSONObject(xmlStrNew);
            System.out.println(jsonObject2);
     * @throws DocumentException
    public static com.alibaba.fastjson.JSONObject documentToJSONObject(String xml) throws DocumentException {
        //加上xml标签是为了获取最外层的标签,如果不需要可以去掉
        Document document = DocumentHelper.parseText("<xml>" + xml + "</xml>");
        return elementToJSONObject(document.getRootElement());
     * org.dom4j.Element 转  com.alibaba.fastjson.JSONObject
     * @param node
     * @return
    public static com.alibaba.fastjson.JSONObject elementToJSONObject(Element node) {
        com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
        // 当前节点的名称、文本内容和属性
        // 当前节点的所有属性的list
        List<Attribute> listAttr = node.attributes();
        // 遍历当前节点的所有属性
        for (Attribute attr : listAttr) {
            result.put(attr.getName(), attr.getValue());
        // 递归遍历当前节点所有的子节点
        // 所有一级子节点的list
        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(elementToJSONObject(e));
        return result;

运行一下main方法 ,看看效果:
 

    public static void main(String[] args) throws DocumentException {
        String xmlStr="<dependency>\n" +
                "            <groupId>org.json</groupId>\n" +
                "            <artifactId>json</artifactId>\n" +
                "            <version>20180813</version>\n" +
                "        </dependency>";
        String xmlStrNew="<configuration>\n" +
                "    <settings>\n" +
                "        <setting name=\"useGeneratedKeys\" value=\"true\"/>\n" +
                "        <setting name=\"useColumnLabel\" value=\"true\"/>\n" +
                "        <setting name=\"mapUnderscoreToCamelCase\" value=\"true\"/>\n" +
                "        <setting name=\"logImpl\" value=\"STDOUT_LOGGING\"/>\n" +
                "    </settings>\n"+
                "</configuration>";
        if (StringUtils.hasLength(xmlStr)) {
            com.alibaba.fastjson.JSONObject jsonObject2 = MyXmlUtil.documentToJSONObject(xmlStr);
            System.out.println(jsonObject2);
        if (StringUtils.hasLength(xmlStrNew)) {
            com.alibaba.fastjson.JSONObject jsonObject2 = MyXmlUtil.documentToJSONObject(xmlStrNew);
            System.out.println(jsonObject2);
 

{"dependency":[{"groupId":"org.json","artifactId":"json","version":"20180813"}]}

    "configuration": [

            "settings": [

                    "setting": [

                            "name": "useGeneratedKeys",

                            "value": "true"

                            "name": "useColumnLabel",

                            "value": "true"

                            "name": "mapUnderscoreToCamelCase",

                            "value": "true"

                            "name": "logImpl",

                            "value": "STDOUT_LOGGING"

好了,该篇就到这。 

1>jQuery插件支持的转换方式: 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换json对象 2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器: 代码如下: JSON.parse(jsonstr); //可以将json字符串转换json对象 JSON.stringify(jsonobj); //可以将json对象转换json对符串 注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录@[TOC](目录)一、dom4j简介二、XML文档操作1.添加依赖2.读取XML文件,获得document对象3.节点操作4.属性操作5.将文档写入XML文件6.添加节点(示例)7.删除节点(示例)8.XPath 语法 一、dom4j简介 dom4j就是一个开源的、简易的可以帮助java解析xml文件的api 。 dom4j官网下载地址:https://dom4j.github.io 二、XML文档操作 1.添加依赖 Java解析XML字符串 后端需要接收一段xml字符串解析xml标签有重复,涉及到解析过后不能用map存入,网上找了好多解析方式并不是我想要的(大部分都是用map存储),于是看着网上解析的思路,写了一套可以保存重复标签以及其他标签的方法。 * 解析xml文件 * @param xml * @param map * @param list * @return public static List parseXml2Ma 点击上方Java后端,选择设为星标优质文章,及时送达作者:CHEN川链接:http://www.jianshu.com/p/83693d3d0a65前言:本文非常长,建议先mark后... 文章目录前言方法一、使用 jdom 进行转换方法二、使用 dom4j 进行转换 近日,在工作中遇到这么一个需求。客户希望我们能将 json 格式的字符串xml 格式返回给他们。针对这一需求,结合互联网上其他前辈的分享,摸索出两种 json 格式 xml 格式的方法。 方法一、使用 jdom 进行转换 xmljson org.jdom 网上教程一大堆,简单直接能用的,不多,各种都是解析出来千奇百怪,后来研究了一下,主要问题其实就出在于xml文件,一个节点是对象还是列表,这个不太好区分,如果本身是列表,但是这个列表只有一条数据,这种情况就是容易误判了。 json xml 的这里就忽略了,没难度,网上随便一搜一大堆。 <dependency> <groupId>dom4j</groupId> <artifactI //JSONObject String jsonMessage = "{\"语文\":\"88\",\"数学\":\"78\",\"计算机\":\"99\"}"; String value1 = null; //将字符串转换jsonObject对象 JSONObject myJsonObject = new JSONObject(jsonMessage); //获取对应的值 value1 = myJsonObject.g doc = DocumentHelper.parseText(result); } catch (DocumentException e) { e.printStackTrace(); Element root = doc.getRootE