JsonIgnore注释不适用于Lombok

问题描述 投票:0回答:1

我面对龙目岛和杰克逊的问题真是奇怪。按照我正在处理的代码段。

@Getter
@Setter
@NoArgsConstructor
@XmlRootElement
public class Order{

    //@JsonIgnore
    @Getter(onMethod = @__(@JsonIgnore))
    private boolean userPresent;
}

所以我想要的是,此dto应该序列化为Json,然后此userPresent属性不应作为响应属性。我虽然@JsonIgnore会为我工作。但是我认为这是https://stackoverflow.com/a/57119494/2111677文章中关于Lombok的一些问题。然后,我更改了使用OnMethod的方法。

现在,在eclipse上编译完全正常,但是当我尝试使用mvn进行编译时,它给了我以下错误。

enter image description here

[当Maven无法使用时,有人可以帮我修复。

maven jackson lombok
1个回答
0
投票

@__样式用于javac7。对于javac8 +,您必须使用此变体:

@Getter(onMethod_=@JsonIgnore)

但是,在字段,getter或setter上具有该注释就足够了。如果至少在其中之一上存在,则在(反序列化)过程中将完全忽略整个“虚拟属性”。因此,如果那是您想要的,则不需要onMethod_

[如果只希望在序列化过程中忽略它,而在反序列化时不希望它,则必须在设置器上添加@JsonProperty

@JsonIgnore
@Setter(onMethod_=@JsonProperty)
private boolean userPresent;
© www.soinside.com 2019 - 2024. All rights reserved.