POJO中有一个isCase字段,它同时映射到case和is_case(这不是预期的)。 删除 @JsonProperty 注释会删除 json 中的 is_case 字段,但 is_case 是它应该的样子。 将 @JsonIgnore 放在 isCase 上并不会消除响应 json 中的大小写。 将 isCase 重命名为 is_case 确实消除了响应 json 中的大小写,但这似乎不太正确。 为什么 Jackson 会将单个 java 字段映射到两个字段? POJO 声明如下:
public class CreateRuleResponse {
@JsonProperty(value = "rule_name", required = true)
private String name;
@JsonProperty("rule_num")
private String ruleNum;
@JsonProperty(value = "rule_category")
private RuleCategory ruleCategory;
@JsonProperty(value = "rule_status")
private RuleStatus ruleStatus;
@JsonProperty(value = "rule_channel_type")
private String ruleChannelType;
@JsonProperty("action")
private RuleAction ruleAction;
@JsonProperty("is_case")
private Boolean isCase;
public CreateRuleResponse() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRuleNum() {
return ruleNum;
}
public void setRuleNum(String ruleNum) {
this.ruleNum = ruleNum;
}
public RuleCategory getRuleCategory() {
return ruleCategory;
}
public void setRuleCategory(RuleCategory ruleCategory) {
this.ruleCategory = ruleCategory;
}
public RuleStatus getRuleStatus() {
return ruleStatus;
}
public void setRuleStatus(RuleStatus ruleStatus) {
this.ruleStatus = ruleStatus;
}
public String getRuleChannelType() {
return ruleChannelType;
}
public void setRuleChannelType(String ruleChannelType) {
this.ruleChannelType = ruleChannelType;
}
public RuleAction getRuleAction() {
return ruleAction;
}
public void setRuleAction(RuleAction ruleAction) {
this.ruleAction = ruleAction;
}
public Boolean getCase() {
return isCase;
}
public void setCase(Boolean aCase) {
isCase = aCase;
}
}
最佳答案
它映射变量以及 getter 方法。
关于java - 使用 Jackson 将单个 java 字段映射到两个 JSON 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946500/