stringxml转换成对象(JsonObject)粘贴即用

该博客介绍了一个用于将XML字符串转换为JSONObject的Java类。通过引入dom4j和org.json库,实现了XML的解析和格式化,然后利用XML.toJSONObject方法将格式化的XML转换为JSON对象。示例中展示了如何使用该类将一个简单的XML字符串转换为对应的JSON对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

stringxml转换成对象(JsonObject)粘贴即用

pom

  <!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
		<dependency>
		    <groupId>dom4j</groupId>
		    <artifactId>dom4j</artifactId>
		    <version>1.6.1</version>
		</dependency>
		 <!-- https://mvnrepository.com/artifact/org.json/json -->
		<dependency>
		    <groupId>org.json</groupId>
		    <artifactId>json</artifactId>
		    <version>20200518</version>
		</dependency>

创建一个类

package com.rs.util;
 
import java.io.IOException;
import java.io.StringWriter;
 
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;	
import org.dom4j.io.XMLWriter;
 
import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;
 
public class XmlToJson {
	
	/**
	 * 传入字符串格式的xml
	 * 将xml格式<a/>装换成<a></a>
	 * 再将xml装换成属性没有带"@"的JSONObject格式
	 * */
	public static JSONObject convertXmlIntoJSONObject (String xml){
		JSONObject jsonObject=new JSONObject();
		try {
		    Document xmlDocument = DocumentHelper.parseText(xml);
		    OutputFormat format = new OutputFormat();
		    format.setEncoding("UTF-8");
		    format.setExpandEmptyElements(true);
		    StringWriter out = new StringWriter();
		    XMLWriter writer = new XMLWriter(out, format);
		    try {
		        writer.write(xmlDocument);
		        writer.flush();
		    } catch (IOException e) {
		        e.printStackTrace();
		    }
		    //out.toString() 此结果为xml的<a></a>格式
		    jsonObject=XML.toJSONObject(out.toString());
		} catch (DocumentException e1) {
			e1.printStackTrace();
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return jsonObject;
	}
}

测试

String xml = "<?xml version="1.0" encoding="utf-8" ?><returnsms> <returnstatus>Faild</returnstatus> <message>企业id只能是数字</message> <remainpoint>0</remainpoint> <taskID>0</taskID> <successCounts>0</successCounts></returnsms>";
JSONObject ss = XmlToJson.convertXmlIntoJSONObject(xml);
  System.out.println(ss );

结果

{"returnsms":{"returnstatus":"Faild","successCounts":0,"message":"企业id只能是数字","remainpoint":0,"taskID":0}}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Heart&Fire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值