jackson JsonProperty和字段注解在Java Spring框架中不能一起工作?

xoshrz7s  于 2022-11-08  发布在  Java
关注(0)|答案(1)|浏览(143)

我正在处理一个涉及数据类型boolean的模型,所以Jackson的问题是,如果我放入isValid,它会自动转换为模式中的valid。但是,这个模型模式需要存储到MongoDB中,我希望isValid成为字段,而不是valid
因此,我四处搜索,我读到@Field("isValid")应该解决这个问题,但它不是,它是导致@JsonProperty("isValid")不工作以及。
这里发生的情况是,当我只输入@JsonProperty("isValid")时,它可以被完美地序列化和反序列化为isValid,但是当我尝试插入MongoDB时,字段变成了valid而不是isValid
下面是我为POJO编写的代码:

@Data
@ToString
public class Response {
    private String duration;

    private String time;

    @JsonProperty("isValid")
    @Field("isValid")
    private boolean isValid;
}

这就是我在MongoDB中想要的:

{
   "duration": "313610236",
   "isValid": false,
   "time": "1658304521794"
}

然而现在我有:

{
   "duration": "313610236",
   "valid": false,
   "time": "1658304521794"
}

如何实现这两个功能,其中我可以反序列化和序列化为isValid,但也可以保存为isValid的字段到MongoDB?
谢谢你,谢谢你

ovfsdjhp

ovfsdjhp1#

这可能对您有用:

@JsonIgnoreProperties({"valid"}) // Prevents serialization
@Data
@ToString
public class Response {
    private String duration;

    private String time;

    @JsonProperty("isValid")
    private boolean isValid;
}

找到可能对您有帮助的链接:Jackson renames primitive boolean field by removing 'is'

相关问题