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

(图片来源网络,侵删)
使用 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 序列化框架。

(图片来源网络,侵删)
添加依赖 (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();
}
}
}
注意事项
- 数据类型匹配:JSON 和 XML 的数据类型不完全匹配,转换时需要注意类型转换问题
- 命名空间:XML 支持命名空间,而 JSON 不支持,转换时可能需要特殊处理
- 性能考虑:对于大型 JSON/XML 文档,选择性能较好的库很重要
- 依赖管理:确保添加所有必要的依赖项
方法各有优缺点,Jackson 通常是最全面的选择,而 org.json 方法则最简单直接,根据你的具体需求选择最适合的方法。

(图片来源网络,侵删)
