繁体   English   中英

如何在 Lombok 中使用@JsonProperty?

[英]How to Use @JsonProperty With Lombok?

假设我们有一个 json 响应,我们想将它映射到我们的 java 类。

{
    "access_token": "abcdefg..."
}

我有一个数据类,将 json 中的access_token字段映射到代码中的accessToken字段。 我曾经在 getter 和 setter 上使用@JsonProperty注释。

private String accessToken;

@JsonProperty("accessToken")
public String getAccessToken() {
    return accessToken;
}

@JsonProperty("access_token")
public void setAccessToken(String accessToken) {
    this.accessToken = accessToken;
}

然后我决定使用 Lombok 注释@Getter@Setter 由于我的代码中没有 getter 和 setter,如何使用 Lombok 注释将 json 中的access_token字段映射到代码中的accessToken字段?

我的代码现在就是这样,正如您所料,它无法映射字段。

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Token {
    private String accessToken;
}

我不想将我的变量命名为access_token ,因为我还将访问令牌作为 json 响应返回,并且我希望它在我的 json 响应中显示为accessToken

谢谢你。

找到了一种方法来做到这一点。

@NoArgsConstructor
@AllArgsConstructor
public class Token {
    @Setter(onMethod = @__(@JsonSetter(value = "access_token"))) 
    @Getter(onMethod = @__(@JsonGetter(value = "accessToken"))) 
    private String accessToken;
}

另一种解决方案是使用@JsonAlias注释。

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Token {
    @JsonAlias("access_token"))) 
    private String accessToken;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM