@JsonIgnore批注的真正用途是什么

时间:2019-10-04 00:49:49

标签: java json hibernate spring-boot

我正在以一对多基数连接表,我正在使用的类相互引用。而且我正在使用@JsonIgnore批注,而对它没有深入的了解。

3 个答案:

答案 0 :(得分:0)

将对象序列化为Json时,标记为@JsonIgnore的字段将不包含在序列化的Json对象中。该属性由Json使用反射序列化读取。

答案 1 :(得分:0)

@JsonIgnore用于忽略序列化和反序列化中使用的逻辑属性。 @JsonIgnore可以在设置获取字段中使用。

如果您将@JsonIgnore添加到字段或其getter方法中,则该字段不会被序列化。

样本POJO:

class User {
    @JsonIgnore
    private int id;
    private String name;
    public int getId() {
        return id;
    }
    @JsonIgnore
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }  
}

用于序列化的示例代码:

ObjectMapper mapper = new ObjectMapper();
User user = new User();
user.setId(2);
user.setName("Bob");
System.out.println(mapper.writeValueAsString(user));

控制台输出:

  

{“名称”:“鲍勃”}

答案 2 :(得分:0)

Jackson的@JsonIgnore批注可以放在字段,getter / settess和构造函数参数上,以标记在序列化为JSON(或从JSON反序列化)期间被忽略的属性。有关更多详细信息,请参见Jackson annotations reference documentation