当前位置: 首页 > article >正文

xml 和json互转工具

 工具1

有个问题会导致springboot返回捕获的异常编程xml格式

 

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import org.json.JSONObject;
import org.json.XML;
import org.w3c.dom.Document;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.ByteArrayInputStream;
import java.io.InputStream;

public class XmlJsonConverter {

    private static final ObjectMapper objectMapper = new ObjectMapper(); // JSON处理
    private static final XmlMapper xmlMapper = new XmlMapper(); // XML处理

    // JSON转XML
    public static String jsonToXml(String json) throws Exception {
        // 将JSON转换为Map
        Object jsonObj = objectMapper.readValue(json, Object.class);
        // 将Map转换为XML
        return xmlMapper.writeValueAsString(jsonObj);
    }

    // XML转JSON
    public static String xmlToJson(String xml) throws Exception {
        // 将XML转换为Map
        Object xmlObj = xmlMapper.readValue(xml, Object.class);
        // 将Map转换为JSON
        return objectMapper.writeValueAsString(xmlObj);
    }

    // 将XML字符串转换为XML文档对象
    private static Document toXmlDocument(String xml) throws Exception {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        InputStream inputStream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
        return builder.parse(inputStream);
    }

    // 将XML文档对象转换为JSON字符串
    public static String xmlDocumentToJson(Document doc) throws Exception {
        // XML文档转换为Map对象
        Object xmlObj = xmlMapper.readValue(xmlMapper.writeValueAsString(doc), Object.class);
        // Map转换为JSON
        return objectMapper.writeValueAsString(xmlObj);
    }

   
    // 测试代码
    public static void main (String[] args) {
        try {
            // JSON 转 XML
            String json = "{\"name\":\"John\", \"age\":30}";
            String xml = jsonToXml(json);
            System.out.println("JSON to XML: \n" + xml);

            // XML 转 JSON
            String xmlStr = "<person><name>John</name><age>30</age></person>";
            String jsonResult = xmlToJson(xmlStr);
            System.out.println("XML to JSON: \n" + jsonResult);
 
}

 <!-- Jackson XML dependency -->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>2.15.0</version>
        </dependency>

        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20210307</version>
        </dependency>

        <!-- Jackson Core dependency -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.15.0</version>
        </dependency>

        <!-- Jackson Databind dependency -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.15.0</version>
        </dependency>

工具2

      <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20210307</version>
        </dependency>





import org.json.JSONObject;
import org.json.XML;

public class XmlJsonConverter {

    public static String jsonToXml(String json) {
        JSONObject jsonObject = new JSONObject(json);
        return XML.toString(jsonObject);
    }

    public static String xmlToJson(String xml) {
        JSONObject jsonObject = XML.toJSONObject(xml);
        return jsonObject.toString();
    }
}


http://www.kler.cn/a/549584.html

相关文章:

  • 大语言模型的解码策略与关键优化总结
  • IDEA集成DeepSeek AI助手完整指南
  • Redis问题排查常用命令
  • Docker-数据卷
  • pikachu靶机-越权、目录遍历、敏感信息泄露
  • Dify 是什么?Dify是一个开源的LLM应用开发平台,支持快速搭建生成式AI应用,具有RAG管道、Agent功能、模型集成等特点
  • C#开源大型商城系统之B2B2C+O2O一体化_OctShop
  • 关于conda换镜像源,pip换源
  • CentOS 7.8 安装MongoDB 7教程
  • 【深度解析】图解Deepseek-V3模型架构-混合专家模型(MoE)
  • 浏览器打开Axure RP模型
  • 鸿蒙应用开发-在Worker中实时修改页面数据(在不同线程中修改主线程中的UI界面)
  • redis分页查询
  • Postman桌面版登录问题use authorization token to sign in
  • 2010年下半年软件设计师考试上午真题的知识点整理(附真题及答案解析)
  • 【Kubernetes】k8s 部署指南
  • 在Mac arm架构终端中运行 corepack enable yarn 命令,安装yarn
  • 力扣做题记录 (二叉树)
  • 使用redis实现与flink窗口同样的消息聚合处理效果
  • GitLab CI/CD 的配置详解:从零开始使用 .gitlab-ci.yml 文件