java如何生成 schema_java – 从pojo生成JsonSchema:如何自动添加“description”?

本文介绍了如何在Java项目中使用Jackson库从Pojo自动生成JsonSchema,并添加描述字段。通过在类的属性上使用@JsonPropertyDescription注解,可以在生成的JsonSchema中包含描述信息。
摘要由CSDN通过智能技术生成

我想在我的项目中从pojos自动生成JsonSchema:代码如下所示:

ObjectMapper mapper = new ObjectMapper();

SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();

mapper.acceptJsonFormatVisitor(clazz, visitor);

JsonSchema jsonSchema = visitor.finalSchema();

String schemaString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonSchema);

当clazz定义如下:

public class ZKBean

{

public String anExample;

public int anInt;

}

I end up with this:

{

"type" : "object",

"id" : "urn:jsonschema:com:emc:dpad:util:ZKBean",

"properties" : {

"anInt" : {

"type" : "integer"

},

"anExample" : {

"type" : "string"

}

}

}

一切都很棒.我想要做的是在模式中添加“description”键,以便我有一些看起来像:

{

"type" : "object",

"id" : "urn:jsonschema:com:emc:dpad:util:ZKBean",

"properties" : {

"anInt" : {

"type" : "integer",

"description" : "Represents the number of foos in the system"

},

"anExample" : {

"type" : "string",

"description" : "Some descriptive description goes here"

}

}

}

我假设有一些注释我可以放在我的ZKBean类中的字段上,但经过半天的未来之后,我还没找到一个.这是要走的路吗?或者我需要与访客做些什么?

谢谢,

杰西

解决方法:

您可以使用@JsonPropertyDescription批注生成自Jackson 2.4.1以来可用的json模式.这是一个例子:

public class JacksonSchema {

public static class ZKBean {

@JsonPropertyDescription("This is a property description")

public String anExample;

public int anInt;

}

public static void main(String[] args) throws JsonProcessingException {

ObjectMapper mapper = new ObjectMapper();

SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();

mapper.acceptJsonFormatVisitor(ZKBean.class, visitor);

JsonSchema jsonSchema = visitor.finalSchema();

System.out.println(mapper

.writerWithDefaultPrettyPrinter().writeValueAsString(jsonSchema));

}

}

输出:

{

"type" : "object",

"id" : "urn:jsonschema:stackoverflow:JacksonSchema:ZKBean",

"properties" : {

"anExample" : {

"type" : "string",

"description" : "This is a property description"

},

"anInt" : {

"type" : "integer"

}

}

}

标签:json,java,jackson,jsonschema

来源: https://codeday.me/bug/20190624/1278229.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值