Java中xml字串與json字串的互轉
阿新 • • 發佈:2021-08-12
0.pom檔案
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
1.XML字串 -> JSON字串
/** * @Description: XML字串 -> JSON字串 * @Author: Yiang37 * @Date: 2021/08/12 10:53:47 * @Version: 1.0 */ public static String xmlToJson(String xmlStr) { JSONObject jsonObject = XML.toJSONObject(xmlStr); return jsonObject.toString(); }
2.JSON字串 - > XML字串
/** * @Description: JSON字串 - > XML字串 * @Author: Yiang37 * @Date: 2021/08/12 10:54:12 * @Version: 1.0 */ public static String jsonToXml(String jsonStr) { JSONObject jsonObject = new JSONObject(jsonStr); String xmlStr = XML.toString(jsonObject); return xmlStr; }
3.參考demo
package com.boclink.utils; import org.json.JSONObject; import org.json.XML; /** * @Description: 報文格式轉換 * @Class: MessageConversionUtils * @Author: Yiang37 * @Date: 2021/8/12 10:36 * @Version: 1.0 */ public class MessageConversionUtils { // 頭部追加 <?xml version="1.0" encoding="UTF-8"?> final static String HEAD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; // abc標籤後追加 locale=" zh_CN" final static String BLANK = " "; final static String ADD_STR = "locale=\"zh_CN\""; /** * @Description: XML字串 -> JSON字串 * @Author: Yiang37 * @Date: 2021/08/12 10:53:47 * @Version: 1.0 */ public static String xmlToJson(String xmlStr) { JSONObject jsonObject = XML.toJSONObject(xmlStr); return jsonObject.toString(); } /** * @Description: JSON字串 - > XML字串 * @Author: Yiang37 * @Date: 2021/08/12 10:54:12 * @Version: 1.0 */ public static String jsonToXml(String jsonStr) { JSONObject jsonObject = new JSONObject(jsonStr); String xmlStr = XML.toString(jsonObject); // abc標籤後追加ADD_STR String abc = appendXmlTagCon(xmlStr, "abc", ADD_STR); return HEAD + abc; } /** * @Description: xml的指定標籤後 追加指定字串 * @Author: Yiang37 * @Date: 2021/08/12 11:12:28 * @Version: 1.0 */ public static String appendXmlTagCon(String xmlStr, String tagStr, String appendStr) { // 計算追加的位置:在標籤之後 int i = xmlStr.indexOf(tagStr) + tagStr.length(); // 插入追加的字串 StringBuilder builder = new StringBuilder(xmlStr).insert(i, BLANK + appendStr); return builder + ""; } }