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

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}}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Heart&Fire

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

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

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

打赏作者

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

抵扣说明:

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

余额充值