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” 以及相应的错误报告。