首页 > 基础资料 博客日记
JAVA中将XML转JSON
2024-07-30 09:00:06基础资料围观290次
文章JAVA中将XML转JSON分享给大家,欢迎收藏Java资料网,专注分享技术知识
整理了下网上能找到的常见两种xml->json的方式,主要是使用json-lib包或者org.json包进行转换最后面是现成的工具类
壹、使用json-lib方式引入依赖:
<!--xml转json的依赖-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
<version>1.2.5</version>
</dependency>
贰、使用org.json引入依赖
直接引入org.json包
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
或者引入hutool的包(推荐)
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.4</version>
</dependency>
叁、现成工具类
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import net.sf.json.JSON;
import net.sf.json.xml.XMLSerializer;
import org.json.XML;
/**
* @ClassName ConvertXMLtoJSON
* @Description 使用xml字符串转json的三种
* @Date 2023/11/22 10:32
* @Version 1.0
*/
public class ConvertXMLtoJSON {
/** 方式--壹
* 依赖json-lib实现转换
* @param xmlStr
* @return
*/
public static String xmlToJSON1(String xmlStr){
创建 XMLSerializer对象
XMLSerializer xmlSerializer = new XMLSerializer();
//将xml转为json(注:如果是元素的属性,会在json里的key前加一个@标识)
JSON readJSON = xmlSerializer.read(xmlStr);
//输出json内容
System.out.println(readJSON.toString());
return readJSON.toString();
}
/**
* 方式--贰
* 使用hutool工具包中的工具转化
* @param xmlStr
* @return
*/
public static String xmlToJSON2(String xmlStr){
//这个方法转换的XML值不全为字符串
JSONObject jsonObject = JSONUtil.xmlToJson(xmlStr);
System.out.println(jsonObject.toString());
//设置xml的值都以String类型显示
JSONObject jsonObject1 = cn.hutool.json.XML.toJSONObject(xmlStr, true);
System.out.println(jsonObject1.toString());
return jsonObject.toString();
}
/**
* 方式--叁
* 使用org.json中的工具,与hutool的源码是一样的
* @param xmlStr
* @return
*/
public static String xmlToJSON3(String xmlStr){
org.json.JSONObject jsonObject1 = XML.toJSONObject(xmlStr);
org.json.JSONObject jsonObject2 = XML.toJSONObject(xmlStr,true);
System.out.println(jsonObject1.toString());
System.out.println(jsonObject2.toString());
return jsonObject2.toString();
}
}
肆、测试与对比
public class Demo22 {
public static void main(String[] args) {
String xmlStr="<service><SysHead><SvcCd>60012000020</SvcCd><ScnCd>01</ScnCd><CnsmrSysNo>103100</CnsmrSysNo><CnsmrSrlNo>MBS000253895</CnsmrSrlNo><GlblSrlNo>5295899690</GlblSrlNo><TxnDt>20231121</TxnDt><TxnTm>110354</TxnTm><PINSd>850812159063</PINSd></SysHead><AppHead><InstId>9959 </InstId><UsrNo>99959028</UsrNo><CnlTp>MBS</CnlTp><CnlDtlTp>MBS93665</CnlDtlTp></AppHead><LocalHead><array></array><array></array></LocalHead><BODY><AppId>67f6c99b74484c2b8bcb35473850cdd7</AppId><BsnSrlNo>12312</BsnSrlNo><UsrNm>童骄</UsrNm><IdentTp>SF</IdentTp><IdentNo>1234567890</IdentNo><MblNo>18982714297</MblNo><CnlNo></CnlNo><UserId></UserId><Cntnt></Cntnt></BODY></service>";
System.out.println("方式1:"+ ConvertXMLtoJSON.xmlToJSON1(xmlStr));
System.out.println("方式2:"+ ConvertXMLtoJSON.xmlToJSON2(xmlStr));
System.out.println("方式3:"+ ConvertXMLtoJSON.xmlToJSON3(xmlStr));
}
}
原xml数据(图一)、json-lib生成的json(图二)、org.json生成的json(图三)
json-lib生成的json字段是按照xml字段顺序,但去掉了最外层的标签 ;org.json解析的json包含所有的标签,包含最外层的,但没有标签顺序是乱的
文章来源:https://blog.csdn.net/weixin_50003028/article/details/134549447
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: