xml转json的两种方法

2023-10-26

1.第一种方法

使用JSON-JAVA提供的方法,之前一直使用json-lib提供的方法转json,后来发现了这个开源项目,觉得用起来很不错,并且可以修改XML.java中的parse方法满足自己的转换需要。

(1)首先去git下载所需的java文件,并导入项目

Git:https://github.com/stleary/JSON-java

(2)使用XML.java中提供的XML.toJSONObject(xml)方法即可完成xml到json的转换,同时也可以对JSON进行格式化

 /* 第一种方法,使用JSON-JAVA提供的方法 */
        //将xml转为json
        JSONObject xmlJSONObj = XML.toJSONObject(xml);
        //设置缩进
        String jsonPrettyPrintString = xmlJSONObj.toString(4);
        //输出格式化后的json
        System.out.println(jsonPrettyPrintString);


2.第二种方法

使用json-lib的XMLSerializer对象

(1)创建XMLSerializer对象

(2)使用XMLSerializer的read(xml)方法即可

       /* 第二种方法,使用json-lib提供的方法 */
        //创建 XMLSerializer对象
        XMLSerializer xmlSerializer = new XMLSerializer();
        //将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)
        String result = xmlSerializer.read(xml).toString();
        //输出json内容
        System.out.println(result);


3.测试

public class Test {
    public static void main(String[] args) {
        String xml = "<class id="
                + "'1'"
                + "><student><name>aaaaaa</name><age>21</age></student><student><name>bbbbbb</name><age>22</age></student></class>";

        /* 第一种方法,使用JSON-JAVA提供的方法 */
        //将xml转为json
        JSONObject xmlJSONObj = XML.toJSONObject(xml);
        //设置缩进
        String jsonPrettyPrintString = xmlJSONObj.toString(4);
        //输出格式化后的json
        System.out.println(jsonPrettyPrintString);

        /* 第二种方法,使用json-lib提供的方法 */
        //创建 XMLSerializer对象
        XMLSerializer xmlSerializer = new XMLSerializer();
        //将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)
        String result = xmlSerializer.read(xml).toString();
        //输出json内容
        System.out.println(result);

    }

第一种方法输出:

{"class": {
    "id": 1,
    "student": [
        {
            "age": 21,
            "name": "aaaaaa"
        },
        {
            "age": 22,
            "name": "bbbbbb"
        }
    ]
}}

第二种方法输出:

{"@id":"1","student":[{"name":"aaaaaa","age":"21"},{"name":"bbbbbb","age":"22"}]}


源码下载:http://download.csdn.net/detail/lom9357bye/9690304


参考: http://hw1287789687.iteye.com/blog/2229267

http://heshans.blogspot.com/2014/01/java-library-to-convert-xml-to-json.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xml转json的两种方法 的相关文章

随机推荐

  • Elasticsearch框架基础概念

    Elasticsearch ES 是一个基于Lucene构建开源分布式搜索引擎并提供Restful接口 Es是一个分布式文档数据库 JSON数据格式存储 类似MongoDB JSON中的每个字段数据都可作为搜索条件 并且能够扩展至数以百计的
  • Mysql查询数据库表中前几条记录

    Mysql查询数据库表中前几条记录问题 我想好多朋友也会碰到 下面我简单的说下我遇到的情况 且解决方法 希望对好多朋友有许多帮助 下面是我数据库test中表student的数据 其中第二条记录被我删除了 在查询分析器中输入select fr
  • Deep Learning:基于pytorch搭建神经网络的花朵种类识别项目(内涵完整文件和代码)—超详细完整实战教程

    基于pytorch的深度学习花朵种类识别项目完整教程 内涵完整文件和代码 相关链接 超详细 CNN卷积神经网络教程 零基础到实战 大白话pytorch基本知识点及语法 项目实战 文章目录 基于pytorch的深度学习花朵种类识别项目完整教程
  • Java集合 —— Map集合

    目录 1 Map接口和Collection接口的不同 2 Map集合的特点 3 Map集合的功能 4 HashMap原理 谈谈你对HashMap的理解 HashMap的数据插入原理是怎样的 5 HashTable特点 6 LinkedHas
  • Unity游戏开发 怪物巡逻AI

    今天实现的内容是怪物AI 看了一些网上的AI 不是特别符合我的需求 于是就自己研究了一种AI 大致和魔兽类的RPG游戏效果差不多 AI效果如下 1 将怪物分为如下几个状态 待机状态 该状态内有3种行为 原地呼吸 原地观察 和游走 可通过权重
  • 汇编语言(王爽第三版)实验九

    实验九 题目与个人思路 编程 在屏幕中间分别显示绿色 绿底红色 白底蓝色的字符串 welcome to masm 在80 25彩色字符模式下 显示器可以显示25行 每行80个字符 根据题意大致效果如下图所示 11行的起始地址计算10 80
  • C语言典型例题二——杨辉三角

    C语言典型例题二 杨辉三角 杨辉三角 C语言中的位运算有哪些操作符 杨辉三角 1 杨辉三角最本质的特征是 它的两条斜边都是由数字1组成的 而其余的数则是等于它肩上的两个数之和 这就是我们用C语言写杨辉三角的关键之一 杨辉三角是一种数学工具
  • Android Looper原理源码分析

    概要 在很久以前的时候转载了一小篇文章 Android Message Queue Message Looper Handler 白话介绍了一下Android Message Queue Looper Handler这几个概念之间的关系 其
  • windows下 mysql忘记root的密码怎么办

    如果mysql忘记密码无法登入 可以通过绕开输入密码登入的方式进行修改 步骤如下 1 右击 此电脑 点击 管理 打开 计算机管理 点击 服务与应用程序 点击 服务 2 找到mysql 先右击停用 再次右击mysql的打开属性对话框 3 在属
  • 942、增减字符串匹配——贪心+vector初始化方法

    文章目录 一 题目描述 二 题目分析 三 代码实现 四 总结 1 回顾一下 vector texttt vector vector 容器的几种初始化操作 一 题目描述 942 增减字符串匹配 由范围 0 n 内所有整数组成的 n
  • Go中 go-sql-driver 的使用

    go sql driver 是 Go 语言中一个常用的 MySQL 数据库驱动程序 支持 MySQL5 5 MySQL5 6 和 MySQL5 7 本文将介绍如何使用 go sql driver 包连接 MySQL 数据库 安装 在命令行中
  • linux计划任务5个*分表代表什么,linux 設置定時任務crontab

    前言 做自動化測試寫的腳本需要設置定制任務 在指定的時間去執行 這就需要用到定時任務 之前用jenkins可以在里面設置定時任務 很好用 其實在linux上也可以用crontab做定時任務 cron 在LINUX中 周期執行的任務一般由cr
  • Python在工业自动化领域的应用详解

    当我们开始讨论在工业自动化应用中使用哪种编程语言时 通常我们会首先谈论IEC 61131 3标准中用于可编程逻辑控制器 PLC 的语言 比如经典的梯形图 LD 或结构化文本 ST 对于机器人等应用 我们经常看到低级编译语言 比如C语言 这几
  • python代码规范快捷键_VS Code写Python的一些小技巧

    原标题 VS Code写Python的一些小技巧 本文基于 VS Code 1 36 1 为什么要用 VS Code 用 PyCharm 不好吗 VS Code 是开源免费的 PyCharm 是收费的 VS Code 除了 Python 还
  • Glcm 灰度共生矩阵,保姆级别教程,获取图片的Glcm和基于Glcm的纹理特征,附讲解思路,python代码的实现

    保姆级别教程 获取图片的Glcm和基于Glcm的纹理特征 附讲解思路 python代码的实现 网络上Glcm的原理很多 但是实现的python代码我确实没找到 讲的也不是很清楚 此文介绍了如何在一张图片中得到Glcm灰度共生矩阵 并基于Gl
  • opencv中矩阵运算

    opencv中矩阵运算 标签 1 cvLoadImage 将图像文件加载至内存 2 cvNamedWindow 在屏幕上创建一个窗口 3 cvShowImage 在一个已创建好的窗口中显示图像 4 cvWaitKey 使程序暂停 等待用户触
  • 理解ROC曲线,TPR与FPR

    在垃圾邮件判别模型中 邮件被判别为垃圾邮件为positive 被判别为非垃圾邮件为negative 那么 TPR TP TP FN 的含义是 垃圾邮件被正常判别为垃圾邮件的比例 FPR FP FP TN 的含义是 非垃圾邮件被判别为垃圾邮件
  • STM32的RTC时钟配置

    STM32的时钟可以使用内部RTC产生时钟日历 也可以使用外部芯片产生更为精确的时钟 如DS3231时钟芯片 本文介绍使用内部RTC产生时钟 RTC的时钟源有以下三种 HSE时钟除以128 LSE振荡器时钟
  • java reference variable,Java中的Object,Reference ID和Reference Variable之间有什么区别?

    What is difference between the following in java Object Reference ID Reference Variable When I see statements like this
  • xml转json的两种方法

    1 第一种方法 使用JSON JAVA提供的方法 之前一直使用json lib提供的方法转json 后来发现了这个开源项目 觉得用起来很不错 并且可以修改XML java中的parse方法满足自己的转换需要 1 首先去git下载所需的jav