java - 如何验证 Jackson 中的特定 json 结构?

标签 java json jackson jsonschema

我需要一种方法来验证特定格式的 json,它可以使用 Jackson 表示一个类(在我的例子中是 Book 类)字符串。有没有办法使用 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());

关于java - 如何验证 Jackson 中的特定 json 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29874944/

相关文章:

java - Hibernate 5.x 迁移建议脚本

java - 解析先前 Activity 的值并显示在 android 中的当前 Activity 微调器字段上

Android OREO 中的 java.lang.IllegalArgumentException : at android. graphics.Outline.setConvexPath

c# - 将字符串解析为通用枚举类型

javascript - 在 JavaScript 中,是否有一种将数字转换为字符串的解析 JSON 的方法?

java - Jackson 将 "14:89:FD:D3:E7:8C"解码为 14

java - 如何使用 Jackson 将 JSON 反序列化为 Map 对象?

java - 如何解析 CDATA 部分中带有 HTML 标签的 XML 文件?

java - 修改 katharsis json 响应

java - 创建 ServletContext 资源中定义的名称为 'jsonView' 的 bean 时出错