json参数化Jackson Java库的JsonProperty值
我想把这具尸体和杰克逊连载
但在许多API调用中,“requestName”部分将有所不同
所以这部分我有一些不同的对象
问题是我想参数化这个JsonProperty的名称,但是注释不接受这个变量
当我编译它时,我得到了这个错误:
/home/duma/IdeaProjects/API Testing/src/test/java/SingleRequest.java:16:19
java: element value must be a constant expression
你知道吗
正文:
"singleRequest": {
"requestName": {
"canReplaceSpellCheckerQuery": false,
"language": "fa",
"query": "test",
"scope": "app",
"entities": ""
}
}
代码:
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
public class SingleRequest {
private Object object;
@JsonIgnore
private String requestName;
SingleRequest(Object request, String requestName){
this.object = request;
this.requestName = requestName;
}
@JsonProperty(value = requestName)
public Object getObject() {
return object;
}
public void setObject(Object object) {
this.object = object;
}
public String getRequestName() {
return requestName;
}
public void setRequestName(String requestName) {
this.requestName = requestName;
}
}
# 1 楼答案
考虑到您希望生成的JSON文档:
如果希望参数化字段
"requestName"
对应的键,则可以尝试以下代码:其中
RequestOptions
是:通过运行以下代码:
输出结果正是这样:
我相信这是实现目标的最简单方法,但也有其他选择。你可以从阅读这篇文章和相关文章开始:https://www.baeldung.com/jackson-map
请注意,提供的代码只是一个示例,没有经过特别的润色