Lombok 和 Jackson - 冲突/不明确的属性名称定义

2024-01-28

我收到一条警告消息:

com.fasterxml.jackson.databind.JsonMappingException: Conflicting/ambiguous property name definitions (implicit name 'balance'): found multiple explicit names: [{}Balance, Balance], but also implicit accessor: [method ResponseVO#getBalance(0 params)][visible=true,ignore=false,explicitName=false] 

我有最新的 lombok 1.18.10 和 fastxml.jackson-version 2.7.5

I found 类似问题 https://github.com/FasterXML/jackson-databind/issues/1122但它应该在 2.7.4 中修复(已关闭)

Jackson 2.7.1 和 Lombok:“冲突/不明确的属性名称定义”#1122

我认为这毕竟可以更改为 2.7.4,可以解决这个问题。

Code:

@Data
@AllArgsConstructor(access = AccessLevel.PUBLIC)
@NoArgsConstructor
public class ResponseVO implements Serializable {

    private static final long serialVersionUID = 1;
    @JacksonXmlProperty(localName = "Balance")
    @JsonProperty("Balance")
    @JacksonXmlElementWrapper(useWrapping = false)
    List<BalanceResponseVO> balance;

是否有相关警告?我怎样才能修复/删除这个警告?

似乎添加了新的 Lombok 版本 @JsonProperty("Balance")也生成设置器并造成这种混乱

EDIT

删除后问题已解决@JsonProperty("Balance")这对我来说实际上是不需要的


我们升级了 Lombok 版本,现在添加了@JsonProperty("Balance")也生成设置器

这个重复的@JsonProperty在日志中创建了一个警告,并且创建响应也失败(无一例外)

我删除了@JsonProperty("Balance")在我的情况下,这实际上是多余的/不需要的,而且它有效

  • 注意更改为private没有解决问题

龙目岛变化 https://projectlombok.org/changelog:

功能:Lombok 现在确切地知道如何处理 @com.fasterxml.jackson.annotation.JsonProperty 并将其复制到正确的位置,例如在创建构建器时。问题#1961 问题#1981

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lombok 和 Jackson - 冲突/不明确的属性名称定义 的相关文章

随机推荐