如何验证 Jackson 中的特定 json 结构?
How to validate a specific json structure in Jackson?
我需要一种方法来验证特定格式的 json,它可以使用 Jackson 表示 class(在我的例子中是 Book class)字符串。有什么方法可以使用 jsonSchema 来做到这一点吗?或者我必须以不同的方式来做
ObjectMapper mapper = new ObjectMapper();
JsonSchema jsonSchema = mapper.generateJsonSchema(Book.class);
编辑
您需要为此使用第三方库。
即https://github.com/fge/json-schema-validator
ObjectMapper objectMapper = new ObjectMapper();
// this line will generate JSON schema from your class
JsonNode schemaNode = objectMapper.generateJsonSchema(StageDetail.class).getSchemaNode();
// make your JSON to JsonNode
JsonNode jsonToValidate = JsonLoader.fromString(JSON_TO_VALIDATE);
// validate it against the schema
ProcessingReport validate = JsonSchemaFactory.byDefault().getJsonSchema(schemaNode).validate(jsonToValidate);
// validate.messages contains error massages
System.out.println("Valid? " + validate.isSuccess());
我需要一种方法来验证特定格式的 json,它可以使用 Jackson 表示 class(在我的例子中是 Book class)字符串。有什么方法可以使用 jsonSchema 来做到这一点吗?或者我必须以不同的方式来做
ObjectMapper mapper = new ObjectMapper();
JsonSchema jsonSchema = mapper.generateJsonSchema(Book.class);
编辑
您需要为此使用第三方库。
即https://github.com/fge/json-schema-validator
ObjectMapper objectMapper = new ObjectMapper();
// this line will generate JSON schema from your class
JsonNode schemaNode = objectMapper.generateJsonSchema(StageDetail.class).getSchemaNode();
// make your JSON to JsonNode
JsonNode jsonToValidate = JsonLoader.fromString(JSON_TO_VALIDATE);
// validate it against the schema
ProcessingReport validate = JsonSchemaFactory.byDefault().getJsonSchema(schemaNode).validate(jsonToValidate);
// validate.messages contains error massages
System.out.println("Valid? " + validate.isSuccess());