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 数据无效”。