Java类到JSON自定义架构的注释

时间:2019-06-10 09:56:47

标签: java jackson annotations jsonschema

我当前正在生成这样的Json Schema:

class Item {
    public int id;
    public string name;
    public string description;
}

ObjectMapper mapper = new ObjectMapper();
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
mapper.acceptJsonFormatVisitor(Item.class, visitor);
JsonSchema schema = visitor.finalSchema();
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(schema));

哪些印刷品:

{
    "type": "object",
    "id": "urn:jsonschema:de:foo:bar:User",
    "properties": {
        "id": { "type": "integer" },
        "name": { "type": "string" },
        "description": { "type": "string" }
    }
}

现在,我想从Item类的注释中将附加信息附加到每种类型。我希望它提供有关如何显示该字段输入的信息。

class User {

    public int id;
    public string name;
    @MyJsonSchemaAnnotation(fieldName = "input", value = "textarea")
    public string description;
}

哪个会给我的?

{
    "type": "object",
    "id": "urn:jsonschema:de:foo:bar:User",
    "properties": {
        "id": { "type": "integer" },
        "name": { "type": "string" },
        "description": { "type": "string", "input": "textarea" }
    }
}

我认为这类似于@JsonDescription或JSR 303注释。如果这是完全可能的,那么我有点迷茫,如果可以的话,我必须以哪种方式实现它。因此,如果有人能给我提示在哪里看的话,将不胜感激!

1 个答案:

答案 0 :(得分:0)

mbknor-jackson-jsonSchema包将Java POJO转换为json模式。它具有@JsonPropertyDescription批注,可用于自定义架构。

请注意,到目前为止,它仅支持json模式的草案4。