Java JSON Schema 是一種用于描述 JSON 數據格式的工具,它可以幫助你在 Java 代碼中驗證 JSON 數據是否符合預期的結構。要使用 Java JSON Schema,你可以使用一些流行的庫,如 Jackson-dataformat-jsonschema
和 jsonschema-core
。下面是一個簡單的示例,展示了如何使用 Jackson-dataformat-jsonschema
庫來驗證 JSON 數據。
首先,確保你已經將 jackson-dataformat-jsonschema
庫添加到項目的依賴中。如果你使用的是 Maven,可以在 pom.xml
文件中添加以下依賴:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-jsonschema</artifactId>
<version>2.13.0</version>
</dependency>
接下來,你可以使用以下代碼來驗證 JSON 數據:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.jsonschema.JsonSchema;
import com.fasterxml.jackson.dataformat.jsonschema.JsonSchemaGenerator;
public class JsonSchemaExample {
public static void main(String[] args) throws Exception {
// JSON 數據
String jsonData = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
// JSON Schema 定義
String schemaJson = "{\"type\":\"object\", \"properties\":{\"name\":{\"type\":\"string\"}, \"age\":{\"type\":\"number\"}, \"city\":{\"type\":\"string\"}}}";
// 創建 ObjectMapper 實例
ObjectMapper objectMapper = new ObjectMapper();
// 創建 JsonSchemaGenerator 實例
JsonSchemaGenerator schemaGenerator = new JsonSchemaGenerator(objectMapper);
// 生成 JSON Schema
JsonSchema jsonSchema = schemaGenerator.generateSchema(schemaJson);
// 將 JSON 數據解析為 JsonNode
JsonNode jsonNode = objectMapper.readTree(jsonData);
// 驗證 JSON 數據是否符合 JSON Schema
boolean isValid = jsonSchema.validate(jsonNode);
if (isValid) {
System.out.println("JSON 數據有效");
} else {
System.out.println("JSON 數據無效");
}
}
}
在這個示例中,我們首先定義了一個 JSON 數據和一個 JSON Schema。然后,我們使用 ObjectMapper
和 JsonSchemaGenerator
類來生成 JSON Schema。最后,我們將 JSON 數據解析為 JsonNode
對象,并使用 JSON Schema 對其進行驗證。如果驗證通過,我們將輸出 “JSON 數據有效”,否則輸出 “JSON 數據無效”。