zoukankan      html  css  js  c++  java
  • Java中xml字符串与json字符串的互转

    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 begin = xmlStr.indexOf(tagStr);
            if (begin < 0){
                // 未出现该字符串 返回原报文
                return xmlStr;
            }
            // 计算追加字符串时的起始位置
            int i = begin + tagStr.length();
            // 插入追加的字符串
            StringBuilder builder = new StringBuilder(xmlStr).insert(i, BLANK + appendStr);
            return builder + "";
        }
    }
    
  • 相关阅读:
    HDOJ 5090 Game with Pearls 二分图匹配
    hdu4360 spfa+分割点
    分布式高级(十三)Docker Container之间的数据共享
    [Ramda] Get a List of Unique Values From Nested Arrays with Ramda (flatMap --> Chain)
    [Ramda] Create an Array From a Seed Value with Ramda's unfold
    [Flow] Declare types for application
    [Flow] The Fundamentals of Flow
    [Angular] Some performance tips
    [Ramda] Rewrite if..else with Ramda ifElse
    [SVG] Add an SVG as an Embedded Background Image
  • 原文地址:https://www.cnblogs.com/yang37/p/15131963.html
Copyright © 2011-2022 走看看