java – Jackson通过删除’is’来重命名原始布尔字段

这可能是重复的.但是我没有找到解决办法.

我有一个班

public class MyResponse implements Serializable {

    private boolean isSuccess;

    public boolean isSuccess() {
        return isSuccess;
    }

    public void setSuccess(boolean isSuccess) {
        this.isSuccess = isSuccess;
    }
}

Getters和setter由Eclipse生成.

在另一个类中,我将该值设置为true,并将其写为JSON字符串.

System.out.println(new ObjectMapper().writeValueAsString(myResponse));

在JSON中,关键在于{“成功”:true}.

我想要的键是asSuccess本身.杰克逊在序列化时使用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”),因为它只具有单个值元素

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。