温馨提示×

java jsonschema 如何验证

小樊
81
2024-11-30 01:04:15
栏目: 编程语言

Java JSON Schema 验证库 com.github.fge.jsonschema.core.exceptions.ProcessingException 提供了对 JSON 对象的验证功能。以下是一个简单的示例,演示了如何使用此库验证 JSON 对象:

首先,确保已将 com.github.fge.jsonschema:jsonschema 库添加到项目的依赖项中。对于 Maven 项目,可以在 pom.xml 文件中添加以下依赖项:

<dependency>
    <groupId>com.github.fge</groupId>
    <artifactId>jsonschema</artifactId>
    <version>2.13.0</version>
</dependency>

接下来,编写一个简单的 Java 程序来验证 JSON 对象:

import com.github.fge.jsonschema.core.exceptions.ProcessingException;
import com.github.fge.jsonschema.core.report.ProcessingReport;
import com.github.fge.jsonschema.main.JsonSchema;
import com.github.fge.jsonschema.main.JsonSchemaFactory;
import com.github.fge.jsonschema.main.JsonValidator;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class JsonSchemaValidator {
    public static void main(String[] args) {
        // JSON Schema 定义
        String schemaJson = "{ \"type\": \"object\", \"properties\": { \"name\": { \"type\": \"string\" }, \"age\": { \"type\": \"number\" } }, \"required\": [\"name\", \"age\"] }";

        // 待验证的 JSON 对象
        String json = "{ \"name\": \"John\", \"age\": 30 }";

        try {
            // 创建 JSON Schema 对象
            JsonSchemaFactory factory = JsonSchemaFactory.getInstance();
            JsonSchema schema = factory.getJsonSchema(schemaJson);

            // 创建 JSON 验证器对象
            JsonValidator validator = schema.getValidator();

            // 执行验证
            ProcessingReport report = validator.validate(json);

            // 输出验证结果
            System.out.println("Validation result: " + (report.isSuccess() ? "Passed" : "Failed"));
            System.out.println("Report: " + report);

        } catch (IOException | ProcessingException e) {
            e.printStackTrace();
        }
    }
}

在这个示例中,我们首先定义了一个 JSON Schema,用于描述有效的 JSON 对象结构。然后,我们创建了一个待验证的 JSON 对象。接下来,我们使用 JsonSchemaFactory 创建一个 JsonSchema 对象,并使用该对象创建一个 JsonValidator 对象。最后,我们调用 validator.validate() 方法执行验证,并输出验证结果。

如果 JSON 对象符合 JSON Schema 定义的结构,程序将输出 “Validation result: Passed”。否则,将输出 “Validation result: Failed” 以及相应的错误报告。

0