前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中xml字符串与json字符串的互转

Java中xml字符串与json字符串的互转

作者头像
玖柒的小窝
修改2021-09-14 14:36:11
2K0
修改2021-09-14 14:36:11
举报
文章被收录于专栏:各类技术文章~各类技术文章~

0.pom文件

代码语言:javascript
复制
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180813</version>
        </dependency>

1.XML字符串 -> JSON字符串

代码语言:javascript
复制
    /**
     * @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字符串

代码语言:javascript
复制
    /**
     * @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

代码语言:javascript
复制
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 + "";
    }
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0.pom文件
  • 1.XML字符串 -> JSON字符串
  • 2.JSON字符串 - > XML字符串
  • 3.参考demo
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档