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

前端之家收集整理的这篇文章主要介绍了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”),因为它只具有单个值元素

猜你在找的Java相关文章