JSON Validator Java

2025年5月5日 | 阅读 3 分钟

在 Java 中,JSON(即 JavaScript 对象表示法)在处理服务器端响应方面发挥着非常重要的作用。在 Java 中,我们可以根据 JSON schema 来验证 JSON 文档。为了执行验证,我们使用 networknt JSON Schema validator 库。

使用此库的原因是它将 Jackson 用作 JSON 库,并支持最新的 JSON Schema 版本。networknt 库是 JSON Schema Core Draft v4、v6、v7 和 v2019-09(我们在示例中使用)规范的 Java 实现,用于 JSON schema 验证。它以 Jackson 作为默认 JSON 解析器。

首先,我们以 JSON 文档和 JSON schema 为例,在程序中使用它们来执行验证。

JSON 文档

JSON Schema

我们将以下依赖项添加到 pom.xml 文件中。

我们也可以使用 org.everit.json 库来验证 JSON 对象。要使用它,我们需要将以下依赖项添加到 pom.xml 文件中

在我们的案例中,我们使用 Java 的 networknt 库。

我们使用以下步骤来验证 JSON 文档

  1. 创建一个新的 maven 项目。
  2. 将 JSON schema 验证器依赖项添加到 pom.xml 文件中。
  3. 使用 ObjectMapper 从 JSON 文档中读取数据和 schema。
  4. 使用 JsonSchemaFactory 的 validate() 方法来验证 JSON 文档。
  5. 将返回的结果存储在验证集中,并将其打印到屏幕上。

现在一切都已设置好,我们可以实现验证 JSON 文档的实际代码了。

JsonValidatorExample.java

描述

在上面的代码中,我们使用了 VersionFlag。要获取 JsonSchemaFactory,需要在构造函数中传递该版本标志。在我们的案例中,我们使用 JSON Schema 的2019-09 版本。

我们还使用了一个自定义的辅助方法,即 inputStreamFromClasspath(),用于从类路径加载这两个文件。我们创建了一个 Jackson ObjectMapper 类的实例,以从 InputStream 读取 JSON 数据。之后,我们将 InputStream 数据解析为 JsonNode 对象。使用 JsonSchemaFactory 的实例,我们获得 JsonSchema 对象来验证 JsonNode。我们创建了一个验证错误集,其中包含一个或多个 ValidationMessage 对象。当没有验证错误时,验证集将为空。

输出

JSON Validator Java