cuốn sách gpt4 ai đã làm

java - 如何使用 codehaus 包类从 POJO 生成 JSON 架构时添加描述属性

In lại Tác giả: Vũ trụ không gian 更新时间:2023-11-04 09:19:09 26 4
mua khóa gpt4 Nike

我打算将我的 POJO 转换为 JSON 架构.

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

import org.codehaus.jackson.annotate.JsonProperty;

tôi không thể sử dụng codehaus api 生成架构,因为我们有递归 JSON 结构,并且我收到 StackOverflowLỗi.

因此,我尝试使用 fasterxml của jackson-module-jsonschema API 来执行此操作,效果很好。

我得到的示例输出:

"Registration" : {
"type" : "object",
"id" : "urn:jsonschema:com:xyz.abc.Address",
}

我有两个要求:

  • 除了“type”和“id”之外,我还想要一个描述属性。我可以添加 @JsonPropertyDescription 属性,这可以工作,但每个属性都会有一个来自 codehaus 的注释和另一个来自 fasterxml 包的注释。 codehaus 中是否有等效的注释可用于此目的?

  • 是否有办法在“id”属性中仅包含非限定类名(仅“Address”,即没有限定对象路径“xyz.abc.Address”且没有“urn:jsonschema”)?

sử dụngfasterxml生成模式的代码:

Người lập bản đồ ObjectMapper = new ObjectMapper();
JsonSchemaGenerator schemaGen = new JsonSchemaGenerator(mapper);
JsonSchema schema = schemaGen.generateSchema(DashboardDef.class);
String generatedJsonSchema = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(schema);

câu trả lời hay nhất

如果可能的话,只需将 codehaus 注释替换为 fasterxml Thế thôi. codehaus 不再受支持,应避免使用。欲了解更多信息,请查看:org.codehaus.jackson versus com.fasterxml.jackson.core .

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

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

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

关于java - 如何使用 codehaus 包类从 POJO 生成 JSON 架构时添加描述属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564748/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress