当前位置: 首页 > 知识库问答 >
问题:

Jackson通过删除“is”来重命名原始布尔字段

戎亦
2023-03-14

这可能是复制品。但我找不到解决我问题的办法。

我有课

public class MyResponse implements Serializable {

    private boolean isSuccess;

    public boolean isSuccess() {
        return isSuccess;
    }

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

getter和setter由Eclipse生成。

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

我希望密钥作为issubcess本身。Jackson在序列化时是否使用setter方法?如何使密钥成为字段名称本身?

共有1个答案

贺自明
2023-03-14

这是一个稍晚的回答,但可能对任何其他来到本页的人有用。

更改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;
    }
}

然后,它将作为{“issubcess”:true}序列化到JSON,但它的优点是不必修改getter方法名。

 类似资料:
  • 问题内容: 这可能是重复的。但是我找不到解决问题的方法。 我有一堂课 获取器和设置器由Eclipse生成。 在另一个类中,我将该值设置为true,并将其写为JSON字符串。 在JSON中,关键字为。 我想要钥匙本身。杰克逊在序列化时是否使用setter方法?如何使关键字成为字段名称本身? 问题答案: 这是一个稍晚的答案,但对其他访问此页面的人可能有用。 更改Jackson序列化为JSON时使用的名

  • 我得到“删除字面上的”假“布尔值”以下语句错误,但我不确定是否有可能删除假。有什么想法吗?

  • 我有“删除字面上的”假“布尔值”声纳错误无状态==false。我该怎么修好它?

  • 问题内容: 我正在使用带有NEST的C#.NET应用程序来创建索引。 我创建了一个Elasticsearch索引,客户可以查询该索引,称为index_1。然后,我使用应用程序的不同实例构建索引的另一个版本,并将其称为index_1_temp。 我将index_1_temp重命名为index_1然后删除原始index_1的最安全方法是什么? 我知道ES具有别名,但是我不确定如何将其用于此任务 编辑:

  • 我有一个整数和零的列表。我想只过滤掉Nones。 这将删除None,但也删除0(整数)。我想以保持0(整数)的方式修改它 结果是一个列表[1,0,1,0,1,0,1,0]--

  • 我有一个实体。我将变量定义为布尔值,并使用Intellij Idea快捷方式创建了Getter和Setter方法。 创建后生成: 我期待getIsForLab和setIsForLab。这是Java的惯例吗?为什么Intellij删除了我的前缀?