> 技术文档 > Json和XML文件相互转化_xml转json

Json和XML文件相互转化_xml转json

目录

一.XML转Json文件

示例:将XML转换为JSON

依赖准备

Java代码示例

代码详细讲解

二.Json转XML文件

示例:将JSON转换为XML

依赖准备

Java代码示例

代码详细讲解

关键代码解析

将JSON转换为XML

写入文件

示例输入与输出

三.具有相同功能的依赖 

Jackson

Jackson JSON与XML模块依赖(Maven)

示例代码

Gson和XStream

Gson与XStream依赖(Maven)

示例代码

总结


一.XML转Json文件

在Java中,将XML文件的数据解析为JSON文件的过程通常涉及以下步骤:

  1. 解析XML文件:使用XML解析库将XML文件读取并转化为对象或数据结构。

  2. 转换为JSON:使用JSON库将Java对象或数据结构转换为JSON格式并输出。

示例:将XML转换为JSON

以下是如何使用Java中的org.json库来转换XML文件数据为JSON格式的完整示例。

依赖准备

首先,在你的项目中添加必要的依赖库。例如,使用 Maven 进行依赖管理:

 org.json json 20210307
Java代码示例
import org.json.JSONObject;import org.json.XML;import java.nio.file.Files;import java.nio.file.Paths;public class XmlToJsonConverter { public static void main(String[] args) { try { // 读取 XML 文件内容 String xmlContent = new String(Files.readAllBytes(Paths.get(\"example.xml\"))); // 将 XML 内容转换为 JSON JSONObject jsonObject = XML.toJSONObject(xmlContent); // 转换后的 JSON 字符串 String jsonContent = jsonObject.toString(4); // 4 为缩进空格数,格式化输出 // 输出 JSON 字符串到文件 Files.write(Paths.get(\"output.json\"), jsonContent.getBytes()); System.out.println(\"XML successfully converted to JSON.\"); } catch (Exception e) { e.printStackTrace(); } }}

代码详细讲解

  1. 读取XML文件内容

    String xmlContent = new String(Files.readAllBytes(Paths.get(\"example.xml\")));

    使用NIO API读取文件到字符串中。example.xml是XML文件的路径。

  2. 使用org.json.XML进行转换

    JSONObject jsonObject = XML.toJSONObject(xmlContent);

    XML.toJSONObject()方法将XML字符串转换为JSON对象。

  3. JSON格式化输出

    String jsonContent = jsonObject.toString(4); // 缩进为4个空格

    JSONObject转换为格式化的JSON字符串。toString(4)可指定缩进大小。

  4. 写入JSON文件

    Files.write(Paths.get(\"output.json\"), jsonContent.getBytes());

    使用NIO API将格式化的JSON字符串写入到output.json

  5. 异常处理: try-catch块用于处理可能出现的IOException和其他异常。

二.Json转XML文件

将JSON数据转换为XML文件涉及两个主要步骤:解析JSON数据,然后生成XML格式的数据并写入文件。我们可以使用org.json库实现这些操作。

示例:将JSON转换为XML

以下是如何使用Java将JSON数据转换为XML文件的完整示例。

依赖准备

确保你的项目中已包含必要的依赖库。例如,使用 Maven 进行依赖管理:

 org.json json 20210307
Java代码示例
import org.json.JSONObject;import org.json.XML;import java.nio.file.Files;import java.nio.file.Paths;public class JsonToXmlConverter { public static void main(String[] args) { try { // 读取 JSON 文件内容 String jsonContent = new String(Files.readAllBytes(Paths.get(\"input.json\"))); // 将 JSON 内容转换为 XML JSONObject jsonObject = new JSONObject(jsonContent); String xmlContent = XML.toString(jsonObject); // 输出 XML 字符串到文件 Files.write(Paths.get(\"output.xml\"), xmlContent.getBytes()); System.out.println(\"JSON successfully converted to XML.\"); } catch (Exception e) { e.printStackTrace(); } }}

代码详细讲解

  1. 读取JSON文件内容

    String jsonContent = new String(Files.readAllBytes(Paths.get(\"input.json\")));

    使用NIO API读取文件到字符串中。input.json是JSON文件的路径。

  2. 使用org.json进行转换

    JSONObject jsonObject = new JSONObject(jsonContent);String xmlContent = XML.toString(jsonObject);
    • new JSONObject(jsonContent):将JSON字符串转换为JSONObject对象。
    • XML.toString(jsonObject):将JSONObject转换为XML字符串。
  3. 写入XML文件

    Files.write(Paths.get(\"output.xml\"), xmlContent.getBytes());

    使用NIO API将XML字符串写入到output.xml

  4. 异常处理: try-catch块用于处理可能出现的IOException和其他异常。

关键代码解析

将JSON转换为XML

org.json.XML类提供了一种简便的方法将JSON数据转换为XML:

String xmlContent = XML.toString(jsonObject);
写入文件

使用NIO API将转换后的XML格式字符串输出到指定文件:

Files.write(Paths.get(\"output.xml\"), xmlContent.getBytes());
示例输入与输出

假设输入的input.json文件内容如下:

{ \"person\": { \"name\": \"John Doe\", \"age\": 25, \"address\": { \"street\": \"123 Main St\", \"city\": \"Anytown\" } }}

转换后的output.xml文件内容如下:

 John Doe 25 
123 Main St Anytown

三.具有相同功能的依赖 

将JSON数据转换为XML格式可以通过多种库来实现。除了org.json库以外,还有一些其他流行的Java库也可以帮助完成这类转换任务。以下是几个常用的库:

Jackson

Jackson库是Java领域非常流行的数据处理库之一。你可以使用Jackson来处理JSON数据,并通过结合XML模块实现JSON到XML的转换。

Jackson JSON与XML模块依赖(Maven)
 com.fasterxml.jackson.core jackson-databind 2.13.1 com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.13.1
示例代码
import com.fasterxml.jackson.dataformat.xml.XmlMapper;import com.fasterxml.jackson.databind.ObjectMapper;import java.nio.file.Files;import java.nio.file.Paths;public class JacksonJsonToXmlConverter { public static void main(String[] args) { try { ObjectMapper jsonMapper = new ObjectMapper(); XmlMapper xmlMapper = new XmlMapper(); // 读取 JSON 文件内容 String jsonContent = new String(Files.readAllBytes(Paths.get(\"input.json\"))); // JSON 转换为 Object Object jsonObject = jsonMapper.readValue(jsonContent, Object.class); // Object 转换为 XML String xmlContent = xmlMapper.writeValueAsString(jsonObject); // 输出 XML 字符串到文件 Files.write(Paths.get(\"output.xml\"), xmlContent.getBytes()); System.out.println(\"JSON successfully converted to XML using Jackson.\"); } catch (Exception e) { e.printStackTrace(); } }}

Gson和XStream

Gson是Google提供的轻量级Java库,适用于处理JSON数据。结合XStream库,你可以将JSON转换为对象再转为XML。

Gson与XStream依赖(Maven)
 com.google.code.gson gson 2.8.8 com.thoughtworks.xstream xstream 1.4.18
示例代码
import com.google.gson.Gson;import com.thoughtworks.xstream.XStream;import java.nio.file.Files;import java.nio.file.Paths;public class GsonToXStreamConverter { public static void main(String[] args) { try { Gson gson = new Gson(); XStream xStream = new XStream(); // 读取 JSON 文件内容 String jsonContent = new String(Files.readAllBytes(Paths.get(\"input.json\"))); // JSON 转换为 Object Object jsonObject = gson.fromJson(jsonContent, Object.class); // Object 转换为 XML String xmlContent = xStream.toXML(jsonObject); // 输出 XML 字符串到文件 Files.write(Paths.get(\"output.xml\"), xmlContent.getBytes()); System.out.println(\"JSON successfully converted to XML using Gson and XStream.\"); } catch (Exception e) { e.printStackTrace(); } }}

总结

多种Java库提供了不同的功能和特点,可以用于JSON到XML的转换:

  • Jackson:功能全面,支持多种数据格式,处理大规模数据很有效。
  • Gson + XStream:轻便而灵活的工具,适用于更轻量级的转换场景。

根据需求选择合适的库,结合项目环境进行集成,都可以方便地完成JSON到XML的格式转换。理解这些工具的使用和配置,可以提高开发效率,简化数据处理步骤。