JSON Schema Validation: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
Line 42: Line 42:
==Knowledge==
==Knowledge==
  https://cdnjs.com/libraries/ajv
  https://cdnjs.com/libraries/ajv
https://cdnjs.com/libraries/moment.js
  https://cdnjs.com/libraries/mustache.js
  https://cdnjs.com/libraries/mustache.js
  https://cdnjs.com/libraries/handlebars.js
  https://cdnjs.com/libraries/handlebars.js

Revision as of 21:19, 9 July 2022

<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()));
        }
    }
}

Schema Naming

Age:           Age.schema.json
Address:   Address.schema.json
Account:   Account.schema.json
Quantity: Quantity.schema.json

Knowledge

https://cdnjs.com/libraries/ajv
https://cdnjs.com/libraries/moment.js
https://cdnjs.com/libraries/mustache.js
https://cdnjs.com/libraries/handlebars.js

References