微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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”),因为它只具有单个值元素

原文地址:https://www.jb51.cc/java/125894.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐