gpt4 book ai didi

java - 检索枚举中设置的 @JsonProperty 值

转载 作者:行者123 更新时间:2023-11-29 08:28:52 25 4
gpt4 key购买 nike

如何检索在 @JsonProperty 注释中设置的值?

我希望能够测试 REST 端点的 JSON 值。我想使用现有的枚举而不是对字符串进行硬编码。我似乎无法弄清楚如何获取 @JsonProperty 注释中设置的值。 😕

import com.fasterxml.jackson.annotation.JsonProperty;

public enum StatusType {
@JsonProperty("unknown")
UNKNOWN,
@JsonProperty("warning")
WARNING,
@JsonProperty("success")
SUCCESS,
@JsonProperty("error")
ERROR,
@JsonProperty("info")
INFO
}

理想情况下我想做这样的事情:

 mvc.perform(get("/status"))
.andExpect(jsonPath("status").value(StatusType.INFO))

最佳答案

您可以使用以下内容(不要忘记处理异常):

String value = StatusType.class.getField(StatusType.INFO.name()) 
.getAnnotation(JsonProperty.class).value();

或者,根据您的需要,您可以使用 @JsonValue 如下定义枚举。 :

public enum StatusType {

UNKNOWN("unknown"),
WARNING("warning"),
SUCCESS("success"),
ERROR("error"),
INFO("info");

private String value;

StatusType(String value) {
this.value = value;
}

@JsonValue
public String getValue() {
return value;
}
}

然后你可以使用:

String value = StatusType.INFO.getValue();

关于java - 检索枚举中设置的 @JsonProperty 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50010866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com