这可能是重复的。但我找不到我的问题的解决方案。
我有课
public class MyResponse implements Serializable {
private boolean isSuccess;
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
}
Getter 和 setter 由 Eclipse 生成。
在另一个类中,我将值设置为 true,并将其写为 JSON 字符串。
System.out.println(new ObjectMapper().writeValueAsString(myResponse));
在 JSON 中, key 以 {"success": true}
的形式出现。
我希望 key 作为 isSuccess
本身。 Jackson 在序列化时是否使用了 setter 方法?如何使键成为字段名称本身?
最佳答案
这是一个稍晚的答案,但可能对访问此页面的其他人有用。
更改 Jackson 在序列化为 JSON 时将使用的名称的简单解决方案是使用 @JsonProperty注释,因此您的示例将变为:
public class MyResponse implements Serializable {
private boolean isSuccess;
@JsonProperty(value="isSuccess")
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
}
这将被序列化为 JSON 作为 {"isSuccess":true}
,但优点是不必修改您的 getter 方法名称。
请注意,在这种情况下,您也可以将注释写为 @JsonProperty("isSuccess")
,因为它只有一个 value
元素
关于java - jackson 通过删除 'is' 重命名原始 boolean 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32270422/