Json和XML文件相互转化

目录

一.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 进行依赖管理:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20210307</version>
</dependency>
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 进行依赖管理:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20210307</version>
</dependency>
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文件内容如下:

<person>
  <name>John Doe</name>
  <age>25</age>
  <address>
    <street>123 Main St</street>
    <city>Anytown</city>
  </address>
</person>

三.具有相同功能的依赖 

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

Jackson

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

Jackson JSON与XML模块依赖(Maven)
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.1</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.13.1</version>
</dependency>
示例代码
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)
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.8</version>
</dependency>
<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.4.18</version>
</dependency>
示例代码
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的格式转换。理解这些工具的使用和配置,可以提高开发效率,简化数据处理步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值