【发布时间】:2019-12-11 23:05:04
【问题描述】:
抱歉重复,现有答案不适用/对我不起作用。示例:Jackson Not Overriding Getter with @JsonProperty
下面是我的对象,它仍然以zipValid 和applianceTypeValid 的形式返回,但我正在寻找isZipValid 和isApplianceTypeValid。
在调试过程中,我注意到jsonResponse.put("statusResponse", new JSONObject(responseStatus)); 这一行被更改为zipValid 和applianceTypeValid。 responseStatus 具有预期的正确值,但是将 responseStatus 加载到jsonResponse 的那一刻,消失了。不知道这有没有帮助。
package com.dish.wfm.services.model;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public class ValidationDTO {
private boolean isZipValid;
private boolean isApplianceTypeValid;
private List<String> partnerEnabledProductTypes;
@JsonProperty(value="isZipValid")
public boolean isZipValid() {
return isZipValid;
}
public void setZipValid(boolean zipValid) {
isZipValid = zipValid;
}
@JsonProperty(value="isApplianceTypeValid")
public boolean isApplianceTypeValid() {
return isApplianceTypeValid;
}
public void setApplianceTypeValid(boolean applianceTypeValid) {
isApplianceTypeValid = applianceTypeValid;
}
public List<String> getPartnerEnabledProductTypes() {
return partnerEnabledProductTypes;
}
public void setPartnerEnabledProductTypes(List<String> partnerEnabledProductTypes) {
this.partnerEnabledProductTypes = partnerEnabledProductTypes;
}
}
谢谢!
【问题讨论】:
-
我刚刚添加了一个 main 方法,创建了一个新的 ObjectMapper 并将您的 DTO 写为字符串,我在输出中看到了 isZipValid。发布一个完整的最小示例来重现问题并告诉您正在使用哪个版本的 Jackson。
-
显示输入 JSON
-
@JB Nizet,我现在不在办公室,但这是我的版本:
<groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.9</version> -
@MichałZiober org.json.JSONObject 是包。
-
@MichałZiober 工作。谢谢!