加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:18:26 所属栏目:Java 来源:网络整理
导读:这可能是重复的.但是我没有找到解决办法. 我有一个班 public class MyResponse implements Serializable { private boolean isSuccess; public boolean isSuccess() { return isSuccess; } public void setSuccess(boolean isSuccess) { this.isSuccess = 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”),因为它只具有单个值元素

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读