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” 以及相應的錯誤報告。