杰瑞科技汇

json 转 xml java

好的# Java 中将 JSON 转换为 XML 的方法

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

使用 Jackson 库

Jackson 是一个流行的 Java JSON 处理库,它提供了将 JSON 转换为 XML 的功能。

添加依赖

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

示例代码

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

使用 Gson 库

Gson 是 Google 提供的 JSON 处理库,也可以用于 JSON 到 XML 的转换。

添加依赖

<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>20250320</version>
</dependency>

示例代码

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

使用 org.json 库

org.json 是一个轻量级的 JSON 处理库,也可以直接用于 JSON 到 XML 的转换。

添加依赖

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

示例代码

import org.json.JSONObject;
import org.json.XML;
public class JsonToXmlConverter {
    public static void main(String[] args) {
        // JSON 字符串
        String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
        // 转换为 XML
        String xml = XML.toString(new JSONObject(json));
        System.out.println(xml);
    }
}

使用 XStream 库

XStream 是一个强大的 Java 库,可以用于序列化和反序列化 XML 和 JSON。

添加依赖

<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.4.18</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>

示例代码

import com.fasterxml.jackson.databind.ObjectMapper;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
public class JsonToXmlConverter {
    public static void main(String[] args) throws Exception {
        // JSON 字符串
        String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
        // 使用 Jackson 将 JSON 转换为对象
        ObjectMapper mapper = new ObjectMapper();
        Object obj = mapper.readValue(json, Object.class);
        // 使用 XStream 将对象转换为 XML
        XStream xstream = new XStream();
        String xml = xstream.toXML(obj);
        System.out.println(xml);
    }
}

注意事项

  1. 命名空间处理:不同的库对命名空间的处理方式可能不同,需要注意。
  2. 特殊字符:确保 XML 中的特殊字符(如 <, >, &)被正确转义。
  3. 性能考虑:对于大型 JSON 文档,选择性能较好的库。
  4. 格式化输出:某些库提供选项来格式化输出 XML(如缩进、换行)。

方法各有优缺点,你可以根据项目需求选择最适合的方案,Jackson 和 org.json 通常是比较简单直接的选择。

分享:
扫描分享到社交APP
上一篇
下一篇