java xml 转json

网上找了下. 一开始看到的都是引用的 json-lib,JSON-JAVA这种的包. 我也搞不懂都还依赖些什么,反正我的一转就是报错. 找了一圈也是懵,搞不懂. 最好想得还是找个人家写好的方法用算了.  看到一个写着 高效xml转json 的方法 . 无脑抄了. 结果在使用的过程中发现.转出来的了xml会少东西.然后仔细看了下实现代码....心里只有一个想法. 哪来的勇气叫高效的. . . 于是自己有写了个. 放出来. 希望后面有用的人能省点事吧. 为了避免打脸我可不敢说什么高效. 什么完美的. 如发现问题,请多批评指教.-------------------------------------------下面正文使用到的包<dependency>    <groupId>dom4j</groupId>    <artifactId>dom4j</artifactId>    <version>1.6.1</version></dependency>

<dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastjson</artifactId>    <version>1.2.32</version></dependency>

直接上代码


public static void xmlToJSON(Element element, JSONObject json) throws JSONException {

        var elementAttributes = element.attributes();
        var elementText = element.getText();
        List<Element> childElements = element.elements();

        for (Object Attribute : elementAttributes) {
            Attribute attr = (Attribute) Attribute;
            if (!isEmpty(attr.getValue())) {
                json.put("@" + attr.getName(), attr.getValue());
            }
        }

        if (!isEmpty(elementText)) {
            if (childElements.isEmpty()) {
                json.put(element.getName(), element.getText());
            } else {
                json.put("#text", element.getText());
            }
        }
        for (Element childElement: childElements){
            JSONObject childJSON = new JSONObject();
            xmlToJSON(childElement, childJSON);
            Object childObject = json.get(childElement.getName());
            if (childObject != null) {
                JSONArray jsona = null;
                if (childObject instanceof JSONObject) {//如果此元素已存在,则转为jsonArray
                    JSONObject jsono = (JSONObject) childObject;
                    json.remove(childElement.getName());
                    jsona = new JSONArray();
                    jsona.add(jsono);
                    jsona.add(childJSON);
                }
                if (childObject instanceof JSONArray) {
                    jsona = (JSONArray) childObject;
                    jsona.add(childJSON);
                }
                json.put(childElement.getName(), jsona);
            } else {
                if (!childJSON.isEmpty()) {
                    json.put(childElement.getName(), childJSON);
                }
            }
        }

    }


 

原文地址:https://www.cnblogs.com/oY-CCTR/p/12101342.html

时间: 2024-10-12 12:26:11

java xml 转json的相关文章

java XML转JSON格式

标签: XML转Json json 2014-05-20 20:55 6568人阅读 评论(6) 收藏 举报  分类: [J2SE基础](20)  代码如下所示,从这个例子中发现了代码库的重要性,如果建立一个自己的代码库,就可以直接从自己的代码库中取出来,这样需要什么就可以随时的取出来.代码库要保证的是规范性和正确性,并且有简单的模块注释. 这是今天在网上找到的XML转json格式的代码,人家封装的很快,节省了我很多时间啊. [java] view plain copy print? impor

java xml 转 json

<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20170516</version> </dependency> System.out.println(org.json.XML.toJSONObject("<note>\n" + "<to>Tove

xml和JSON格式相互转换的Java实现

依赖的包: json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar xom-1.2.1.jar commons-lang-2.1.jar commons-io-1.3.2.jar jaxen-1.1.jar 输入xml文件,输出JSON对象 package com.cash.util; import java.io.IOException; import java.io.InputStream; import org.apache.commons.io.IOUtils;

JSON-lib框架,JAVA对象与JSON、XML之间的相互转换

Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象. 一. 准备工作  1. 首先要去官方下载json-lib工具包 下载地址: http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/ 目前最新的是2.4的版本,本示例中使用的是v2.3:json-lib还需要以下依赖包: jakar

json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)

1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http://xiazai.jb51.net/201707/yuanma/lib_jb51.rar 提供了除JSONObject的jar之外依赖的其他6个jar包,一共7个jar文件 说明:因为工作中项目用到的版本是1.1的对应jdk1.3的版本,故本篇博客是基于1.1版本介绍的. 对应此版本的javadoc下载

JSONUtil(JAVA对象/List与json互转,xml与json互转)

package com.chauvet.utils.json; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStreamReader; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.J

java下XML与JSON互相转换的Utils类

原文:http://heipark.iteye.com/blog/1394844 需要json-lib-2.1-jdk15.jar和xom-1.2.5.jar,maven pom.xml如下: <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.1</version> <classif

JAVA 实现XML与JSON 相互转换

原文地址https://blog.csdn.net/congcong68/article/details/39029907 在工作中,经常碰到XML转为JSON或者JSON转为XML,在这过程中有时嵌套很多层,容易错误,我把实现的代码分享出来,希望对有用到的人提供借鉴.    1.把XML转为JSON格式 [java] view plain copy <span style="font-size:18px;">@SuppressWarnings("rawtypes

序列化: 一个老家伙的咸鱼翻身(Java对象、XML、JSON、反序列化)

原文链接:https://mp.weixin.qq.com/s/ybpdxx2lvZNNqaoXHG24Zg 转自:码农翻身(微信号:coderising) 1.寒冬的蛰伏 这里的工作很繁忙,一年365天, 一天24小时几乎不停工. 但是我却是一个闲人, 因为我做的工作最近用的人太少了, 经常被冷落在一边. 大多数时候,我只能羡慕的看着线程.反射.注解.集合.泛型这些明星员工在那里忙忙碌碌, 听着他们充满激情的的大声说笑. 他们都叫我序列化,想想也是, 我的工作就是把一个Java 对象变成二进制