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

Jackson@JsonIgnore属性为空

干弘深
2023-03-14
{"receive":1413342268310}
public class PositionBean {  
    private Long id;
    private Date receive;

    public void setReceive (Date receive) {
        this.receive = receive;
    }

    public void setReceive (Long receive) {
        this.receive = new Date (receive);
    }

    public Long getReceive () {
        return receive.getTime ();
    }
}

我必须在其他类中使用的所有set和get方法,所以我不能删除一个方法。当我召唤

objectMapper.readValue(str, PositionBean.class);

它提示异常,jackon不知道设置了哪个方法,所以我使用了@jsonignore,但我发现receive是null。

共有1个答案

华萧迟
2023-03-14

您可以使用注释@JsonSetter来指定应该使用哪个方法作为setter。

示例:

public class PositionBean {  
    private Long id;
    private Date receive;

    public void setReceive (Date receive) {
        this.receive = receive;
    }

    @JsonSetter
    public void setReceive (Long receive) {
        this.receive = new Date (receive);
    }

    public Long getReceive () {
        return receive.getTime ();
    }
}  

当您用@jsonIgnore标记setter(例如setXXX)时,表示属性XXX将被忽略。
从文档中:

 类似资料:
  • 问题内容: 编辑:现在更具体,我注意到我想在下面使用两个依赖项的冲突: 基本上,我试图忽略一个属性(@JsonIgnore),但是我的Jackson注释都没有起作用。甚至@JsonProperty。我试图在getters和setters方法中添加@JsonIgnore,但是行为相同。 我还尝试遵循官方文档,并尝试使用其他库 导入org.codehaus.jackson.annotate.JsonI

  • 在处理一个项目时,我犯了一个错误,将@jsonIgnore放在setter而不是getter属性上,如下所示 这是@jsonIgnore正常工作的方式吗?我以为只在getter上设置@jsonignore可以防止序列化。在这里,它阻止了序列化,即使我把它放在getter或setter上。 感谢任何建议。多谢了。

  • 问题内容: 在我的实体类中,我试图创建一个只写字段(在序列化期间会被忽略,但通常会反序列化)。 这 几乎 给了我想要的东西:JSON包含“ password”字段,但该值始终为null。如何完全删除该字段? 问题答案: 使用上只是 吸气 ,而不是使用。然后也用在 二传手 。 这应该允许反序列化,但是序列化的JSON输出将不包含它。 例如,将以其他方式表示要序列化的属性(例如“ getValue”以

  • 问题内容: 我想序列化一个对象,以便根据字段的类型对字段之一进行不同的命名。例如: 在这里,我希望将该字段序列化为类似的内容,而不是总是根据情况将字段称为包含不同类型的字段。 使用Jackson怎么能达到这样的目的? 问题答案: 使用自定义。 然后,假设您要序列化以下两个对象: 第一个将打印: 第二个: 我使用了包装对象的名称,因为它仅用作花边固定器。如果要删除它,则必须为 整个 类编写一个自定义

  • 我需要反序列化以下json: 将它的< code>id属性设置为< code>foo_id json属性。 我需要在自定义反序列化程序中执行此操作。实现这一点最简单的方法是什么? 我想以某种方式将json“转换”为 然后将此委托给杰克逊。 在本例中,对象的类型为Foo,但其他对象可能不属于此类。另外,在本例中,json是一个数字,但如果它也是一个字符串,我希望支持。所以,我需要一种通用的方法来做到

  • 我正在寻找一种解决方案,使用Jackson基于同一POJO中的其他属性值序列化POJO对象属性 如果某个属性值符合某些条件,则应根据要求更改其他属性值 例如,下面是我的JSON对象: 在上述情况下,如果的值符合某些条件,那么我应该能够更改的值 为什么需要这样做: 是一个配置对象 和-是配置设置 在上面的例子中,中有一个是,我需要屏蔽/更改相应的 还要补充一点,在这个例子中,属性是和,但是如果我们找