【发布时间】:2019-12-12 13:40:01
【问题描述】:
我正在使用 jsonschema2pojo maven 插件生成 pojo。使用自定义注释器,我包含了一些 lombok 注释(效果很好),但它也为注释创建变量。有没有办法强制 jsonschema2pojo 不为注解创建对象变量而只是有变量?
json 架构
{
"title": "Person",
"type": "object",
"properties": {
"lombok-builder": true,
"lombok-data": true,
"lombok-to-string": true,
"name": {
"type": "string"
}
}
}
自定义注释器
@Override
public void propertyField(JFieldVar field, JDefinedClass clazz, String property, JsonNode propertyNode) {
super.propertyField(field, clazz, property, propertyNode);
if (property.equals("lombok-builder")) {
clazz.annotate(Builder.class);
} else if (property.equals("lombok-data")) {
clazz.annotate(Data.class);
} else if (property.equals("lombok-to-string")) {
clazz.annotate(ToString.class);
}
}
jsonschema2pojo生成的Person.java
package com.package;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* Person
* <p>
*
*
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@Builder
@Getter
@Setter
@Data
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@ToString
@JsonPropertyOrder({
"lombok-builder",
"lombok-getter",
"lombok-setter",
"lombok-data",
"lombok-equals-and-hash-code",
"lombok-no-args-constructor",
"lombok-all-args-constructor",
"lombok-to-string",
"name"
})
public class Person {
@JsonProperty("lombok-builder")
public Object lombokBuilder;
@JsonProperty("lombok-data")
public Object lombokData;
@JsonProperty("lombok-to-string")
public Object lombokToString;
@JsonProperty("name")
public String name;
}
如您所见,注释工作正常,但我收到了public Object lombokToString;、@JsonProperty("lombok-to-string") 等:|
【问题讨论】:
标签: java annotations jsonschema pojo jsonschema2pojo