如何使用codehaus包类从POJO生成JSON模式时添加描述属性

时间:2019-10-25 19:38:01

标签: java json jackson jsonschema fasterxml

我打算将我的POJO转换为JSON Schema

在现有的POJO中,我们有codehaus包中的注释: @JsonProperty("address"),其中相应的导入为:

import org.codehaus.jackson.annotate.JsonProperty;

由于我们具有递归codehaus结构,并且我得到JSON,因此我无法使用StackOverflowError api来生成模式。

因此,我尝试使用fasterxml的{​​{1}} jackson-module-jsonschema来做到这一点。

我得到的样本输出:

API

我有两个要求:

  • 除了“ type”和“ id”之外,我还希望具有描述属性。我可以添加"Registration" : { "type" : "object", "id" : "urn:jsonschema:com:xyz.abc.Address", } 属性,该属性将起作用,但是每个属性将具有一个来自@JsonPropertyDescription的注释和另一个来自codehaus包的注释。 fasterxml中是否有可用于此目的的等效注释?

  • 是否有一种方法可以在“ id”属性中仅包含不合格的类名(仅“地址”,即不包含合格的对象路径“ xyz.abc.Address”,而没有“ urn:jsonschema” )?

使用codehaus生成架构的代码:

fasterxml

1 个答案:

答案 0 :(得分:0)

如果可能,只需将codehaus注释替换为fasterxmlcodehaus不再受支持,应避免使用。有关更多信息,请查看:org.codehaus.jackson versus com.fasterxml.jackson.core

如果您真的想使用这两个库来研究项目,则应查看AnnotationIntrospector类,该类允许进行额外的配置并将许多不同的库与Jackson框架链接。看到类似的问题:How to make fasterxml ObjectMapper work with codehaus annotations

要操作JSON Schema,您可以实现自己的SchemaFactoryWrapper。另请参阅:

PS:我知道这不是理想的答案(它不包含直接解决方案),但我想向您指出一些您应该从中解决问题的主题,对此,评论太小了。