[英]how to use @JsonProperty in this case - jackson API with lombok
[英]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.