这可能是重复的。但是我找不到解决问题的方法。
我有一堂课
public class MyResponse implements Serializable { private boolean isSuccess; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean isSuccess) { this.isSuccess = isSuccess; } }
获取器和设置器由Eclipse生成。
在另一个类中,我将该值设置为true,并将其写为JSON字符串。
System.out.println(new ObjectMapper().writeValueAsString(myResponse));
在JSON中,关键字为{"success": true}。
{"success": true}
我想要钥匙isSuccess本身。杰克逊在序列化时是否使用setter方法?如何使关键字成为字段名称本身?
isSuccess
这是一个稍晚的答案,但对其他访问此页面的人可能有用。
更改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方法名称的优点。
{"isSuccess":true}
请注意,在这种情况下,您也可以编写注释,@JsonProperty("isSuccess")因为注释只有一个value元素
@JsonProperty("isSuccess")
value