当且仅当某个字段存在时,是否可以让Jackson通过getter / setter序列化

时间:2016-08-18 00:20:59

标签: java jackson

鉴于此课程

class User {
   Long id;
   String username;
   String password;
   boolean active;

   String getUsername() {
   }

   boolean isNew() {
     return id != null;
   }

   boolean isActive() {
     return active;
   }
}

我想知道是否可以全局(不是通过类上的注释)将此类序列化为

{
  username: "foo",
  active: true, // or would it be isActive, can't remember
}

虽然反序列化你可以设置

{
  username: "bar",
  active: false, // or would it be isActive, can't remember
  password: "password1"
}

我在这里寻找的技巧是密码没有getter所以它不应该被序列化,并且isNew没有字段所以不应该序列化。密码确实有一个setter,所以允许输入。

我知道您可以设置GETTER,SETTER,IS_GETTER和FIELD的可见性,但据我所知,没有办法说必须是具有有效读者和支持字段的属性,或者是具有支持字段的有效编写者。

0 个答案:

没有答案