JSON Schema Validation: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Line 45: Line 45:
* [https://github.com/everit-org/json-schema EverIt JSON Schema Validator]
* [https://github.com/everit-org/json-schema EverIt JSON Schema Validator]
* [https://json-schema.org/understanding-json-schema/structuring.html Structuring a Complex Schema]
* [https://json-schema.org/understanding-json-schema/structuring.html Structuring a Complex Schema]
* [https://github.com/FasterXML/jackson-modules-java8 <code>jackson-modules-java8</code>]





Revision as of 03:55, 24 June 2021

<dependency>
    <groupId>com.networknt</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>1.0.42</version>
</dependency>
private static InputStream inputStreamFromClasspath(String path) {
    return Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
}
 
public static void main(String[] args) throws Exception {
    ObjectMapper objectMapper = new ObjectMapper();
    JsonSchemaFactory schemaFactory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V201909);
 
    try (
            InputStream jsonStream = inputStreamFromClasspath("example.json");
            InputStream schemaStream = inputStreamFromClasspath("example-schema.json")
    ) {
        JsonNode json = objectMapper.readTree(jsonStream);
        JsonSchema schema = schemaFactory.getSchema(schemaStream);
        Set<ValidationMessage> validationResult = schema.validate(json);
 
        // print validation errors
        if (validationResult.isEmpty()) {
            System.out.println("no validation errors :-)");
        } else {
            validationResult.forEach(vm -> System.out.println(vm.getMessage()));
        }
    }
}

References