Search code examples
javajsoneclipsebooleanobjectmapper

boolean JSON parameter is false after using default ObjectMapper


I have JSON response with boolean (isBlocked) parameter

{"isBlocked":true,"responseId":"ab123456789", "other":"irrelevant"}

My ResponseVO (with auto generated getters and setters using Eclipse):

@JsonIgnoreProperties(ignoreUnknown = true)
public class ResponseVO {

private boolean isBlocked;
private String responseId;
public boolean isBlocked() {
    return isBlocked;
}
public void setBlocked(boolean isBlocked) {
    this.isBlocked = isBlocked;
}
public String getResponseId() {
    return responseId;
}
public void setResponseId(String responseId) {
    this.responseId = responseId;
}   

}

I'm using ObjectMapper to set VO object

ResponseVO responseVO = new ObjectMapper().readValue(response, ResponseVO.class);

But boolean parameter is set to false instead of true

logger.debug("SpelPaus Block=" + responseVO.isBlocked());

Solution

  • Rename the private attribute to private boolean blocked;

    and setter-getter as

    public boolean isBlocked()
        {return blocked;}
    
    public void setBlocked(boolean blocked)
        {this.blocked = blocked;}