杰瑞科技汇

Java JSON如何转换成XML?

Java JSON 转 XML 转换指南

在 Java 中将 JSON 转换为 XML 有多种方法,以下是几种常用的实现方式:

Java JSON如何转换成XML?-图1
(图片来源网络,侵删)

使用 Jackson 库

Jackson 是一个流行的 Java JSON 处理库,也支持 XML 转换。

添加依赖 (Maven)

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.13.0</version>
</dependency>

示例代码

import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import java.io.IOException;
public class JsonToXmlConverter {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
        try {
            // 创建 XmlMapper 实例
            XmlMapper xmlMapper = new XmlMapper();
            // 将 JSON 字符串转换为 XML 字符串
            String xml = xmlMapper.writeValueAsString(json);
            System.out.println("转换后的 XML:");
            System.out.println(xml);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 Gson 库

Gson 是 Google 提供的 JSON 处理库,可以通过结合其他库实现 JSON 到 XML 的转换。

添加依赖 (Maven)

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20250307</version>
</dependency>

示例代码

import com.google.gson.Gson;
import org.json.JSONObject;
import org.json.XML;
public class JsonToXmlConverter {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
        try {
            // 使用 org.json 库转换
            JSONObject jsonObject = new JSONObject(json);
            String xml = XML.toString(jsonObject);
            System.out.println("转换后的 XML:");
            System.out.println(xml);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 XStream 库

XStream 是一个简单的库,用于将对象序列化为 XML 和从 XML 反序列化。

添加依赖 (Maven)

<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.4.18</version>
</dependency>

示例代码

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
public class JsonToXmlConverter {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
        try {
            XStream xstream = new XStream(new JettisonMappedXmlDriver());
            xstream.processAnnotations(Person.class); // 如果有注解需要处理
            // 将 JSON 转换为对象,再转换为 XML
            Person person = new Gson().fromJson(json, Person.class);
            String xml = xstream.toXML(person);
            System.out.println("转换后的 XML:");
            System.out.println(xml);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    static class Person {
        String name;
        int age;
        String city;
        // getters and setters
    }
}

使用 Simple Framework

Simple Framework 是一个简单但功能强大的 XML 和 JSON 序列化框架。

Java JSON如何转换成XML?-图2
(图片来源网络,侵删)

添加依赖 (Maven)

<dependency>
    <groupId>org.simpleframework</groupId>
    <artifactId>simple-xml</artifactId>
    <version>2.7.1</version>
</dependency>
<dependency>
    <groupId>org.simpleframework</groupId>
    <artifactId>simple-json</artifactId>
    <version>6.0.1</version>
</dependency>

示例代码

import org.json.JSONObject;
import org.simpleframework.xml.convert.Registry;
import org.simpleframework.xml.convert.RegistryStrategy;
import org.simpleframework.xml.core.Persister;
import org.simpleframework.xml.strategy.Strategy;
public class JsonToXmlConverter {
    public static void main(String[] args) {
        String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
        try {
            JSONObject jsonObject = new JSONObject(json);
            String xml = org.json.XML.toString(jsonObject);
            System.out.println("转换后的 XML:");
            System.out.println(xml);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

注意事项

  1. 数据类型匹配:JSON 和 XML 的数据类型不完全匹配,转换时需要注意类型转换问题
  2. 命名空间:XML 支持命名空间,而 JSON 不支持,转换时可能需要特殊处理
  3. 性能考虑:对于大型 JSON/XML 文档,选择性能较好的库很重要
  4. 依赖管理:确保添加所有必要的依赖项

方法各有优缺点,Jackson 通常是最全面的选择,而 org.json 方法则最简单直接,根据你的具体需求选择最适合的方法。

Java JSON如何转换成XML?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇