Convert XML to JSON in Java

2025 年 3 月 28 日 | 阅读 4 分钟

JSON 代表 JavaScript 对象表示法,是一种用于存储和传输数据的轻量级格式。它以键值对的形式存储数据。大多数应用程序都使用此格式在服务器与网页之间传输数据,反之亦然。然而,我们可以在 Java 中使用 org.json.XML 类将 XML 转换为 JSON。此类提供了一个静态方法 XML.toJSONObject 来将 XML 转换为 JSON 数组。

转换 XML 到 JSON 的场景

API 响应:在处理 Web API 时,您可能会收到某些端点的 XML 响应。将这些 XML 响应转换为 JSON 可以更轻松地处理现代 Web 应用程序中的数据,这些应用程序主要使用 JSON 进行数据交换。

数据集成:在企业应用程序中,数据可能以 XML 格式在系统之间交换。将 XML 数据转换为 JSON 可以促进与期望 JSON 数据的系统的集成,从而实现不同平台和技术之间的无缝数据交换。

数据转换:XML 在某些领域和遗留系统中仍然被广泛使用。将 XML 数据转换为 JSON 可以实现数据格式的现代化,使在旨在处理 JSON 的较新应用程序中处理 XML 数据更加容易。

网页抓取:抓取网站数据时,您可能会遇到 XML 数据结构。将 XML 转换为 JSON 可以简化数据处理和分析,尤其是在使用针对处理 JSON 数据进行了优化的库或工具时。

互操作性:XML 和 JSON 都是广泛使用的数据交换格式。将 XML 转换为 JSON 可以增强支持不同数据格式的系统和应用程序之间的互操作性,使它们能够无缝交换数据,而不管内部使用的格式。

要访问 org.json 包,我们需要在 pom.xml 文件中添加依赖项。将以下代码添加到 Maven 项目的 pom.xml 文件中。

现在,我们可以访问 org.json 包并使用 org.json.XML 类提供的方法。请考虑以下示例,我们在其中将 XML 字符串转换为 JSON 数组。

在这里,我们创建了一个 Maven 项目来配置项目中的 pom.xml 并添加依赖项。

文件名:ConvertXML.java

输出

{"root": {"test": [
    {
        "attribute": "text1",
        "content": "javatpoint"
    },
    {
        "attribute": "text2",
        "content": "JTP"
    }
]}}

使用 Jackson 库

Jackson 是一个流行的 Java 库,用于处理 JSON 数据。它提供了易于使用的解析和生成 JSON 的 API。要使用 Jackson 将 XML 转换为 JSON,请按照以下步骤操作:

添加 Jackson 依赖项:首先,我们需要将 Jackson 依赖项添加到您的项目中。如果您使用的是 Maven,请将以下内容添加到您的 pom.xml 文件中:

读取 XML 输入:使用 Jackson 的 XmlMapper 读取 XML 输入

转换为 JSON:将 XML 节点转换为 JSON

让我们看一个相同的示例。

文件名:XmlToJsonConverter.java

输出

Converted JSON Data:
{"root":{"name":"John","age":30}}
Using Java APIs (DOM or SAX)

或者,我们可以使用内置的 Java API,如 DOM(文档对象模型)或 SAX(XML 简单 API)解析器来解析 XML,然后手动将其转换为 JSON。

解析 XML:使用 DOM 或 SAX 等解析器来解析 XML 文档

遍历 DOM 树(或处理 SAX 事件):遍历 DOM 树或处理 SAX 事件以提取数据并构建 JSON 对象

转换为 JSON 字符串:将 JSON 对象转换为字符串

使用 SAX 解析器

文件名:XmlToJsonConverterSAX.java

输出

Converted JSON Data:
{"name":"John","age":"30"}