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

java中Xml、json之间的相互转换

旁白:

最近关于xml与json之间的转换都搞蒙了,这里写一个demo,以后备用。

正题:

project格式是:

jar包是一个一个检出来的,还算干净了。

代码:

工具类:

package exercise.xml;

import net.sf.json.JSON;
import net.sf.json.JSONSerializer;
import net.sf.json.xml.XMLSerializer;

import org.jdom.Document;

public class XmlExercise {

    /**
     * 将xml字符串<STRONG>转换</STRONG>为JSON字符串
     * 
     * @param xmlString
     *            xml字符串
     * @return JSON<STRONG>对象</STRONG>
     */
    public static String xml2json(String xmlString) {
        XMLSerializer xmlSerializer = new XMLSerializer();
        JSON json = xmlSerializer.read(xmlString);
        return json.toString(1);
    }

    /**
     * 将xmlDocument<STRONG>转换</STRONG>为JSON<STRONG>对象</STRONG>
     * 
     * @param xmlDocument
     *            XML Document
     * @return JSON<STRONG>对象</STRONG>
     */
    public static String xml2json(Document xmlDocument) {
        return xml2json(xmlDocument.toString());
    }

    /**
     * JSON(数组)字符串<STRONG>转换</STRONG>成XML字符串
     * 
     * @param jsonString
     * @return
     */
    public static String json2xml(String jsonString) {
        XMLSerializer xmlSerializer = new XMLSerializer();
        return xmlSerializer.write(JSONSerializer.toJSON(jsonString));
        // return xmlSerializer.write(JSONArray.fromObject(jsonString));//这种方式只支持JSON数组
    }

}

测试类:

package exercise.xml;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class XmlTest extends XmlExercise {

    public static void main(String[] args) {

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("username", "horizon");
        JSONArray jsonArray = new JSONArray();
        JSONObject dataJson = new JSONObject();
        jsonArray.add(jsonObject);
        //jsonArray.add(jsonObject);
        dataJson.put("data", jsonArray);
        System.out.println(dataJson.toString());

        String xml = json2xml(dataJson.toString());
        System.out.println("xml:" + xml);
        String str = xml2json(xml);
        System.out.println("to_json" + str);

    }
}

 

转载于:https://www.cnblogs.com/tv151579/p/3516674.html

相关文章:

  • 新概念书店无非内容电商线下变体,西西弗终难逃被资本吞并命运?
  • android应用activity中调出输入法后界面调整问题的解决
  • watch深度监测
  • PHP-学习大规模高并发Web系统架构及开发推荐书籍
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • 【转】ini载入保存类,操作INI配置文件方便的很
  • PostgreSQL 连接的问题
  • 珍爱之礼 美妙感受
  • Python Flask-Mail环境变量配置
  • 内表生成XML简单实例
  • nginx基础
  • java 编程性能调优
  • 简单实现一个textarea自适应高度
  • 苹果数据记录之详细让人不寒而栗
  • TCP的三次握手(建立连接)和四次挥手(关闭连接)
  • 07.Android之多媒体问题
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • If…else
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Javascript基础之Array数组API
  • Java编程基础24——递归练习
  • PHP的类修饰符与访问修饰符
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • TypeScript迭代器
  • Vue.js 移动端适配之 vw 解决方案
  • Yii源码解读-服务定位器(Service Locator)
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • ------- 计算机网络基础
  • 计算机在识别图像时“看到”了什么?
  • 力扣(LeetCode)357
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 设计模式 开闭原则
  • 深入浏览器事件循环的本质
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 译自由幺半群
  • 鱼骨图 - 如何绘制?
  • 整理一些计算机基础知识!
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • !!Dom4j 学习笔记
  • #Java第九次作业--输入输出流和文件操作
  • #laravel 通过手动安装依赖PHPExcel#
  • %check_box% in rails :coditions={:has_many , :through}
  • (8)STL算法之替换
  • (floyd+补集) poj 3275
  • (多级缓存)多级缓存
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (十六)Flask之蓝图
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • .Net Core和.Net Standard直观理解
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • :not(:first-child)和:not(:last-child)的用法