Jackson, serileştirme ve serileştirme sırasında alanların filtrelenmesine yardımcı olan SimpleBeanPropertyFilter adlı bir sınıfa sahiptir; küresel olarak değil. Bence istediğin buydu.
@JsonFilter("custom_serializer")
class User {
private String password;
//setter, getter..
}
Sonra kodunuzda:
String[] fieldsToSkip = new String[] { "password" };
ObjectMapper mapper = new ObjectMapper();
final SimpleFilterProvider filter = new SimpleFilterProvider();
filter.addFilter("custom_serializer",
SimpleBeanPropertyFilter.serializeAllExcept(fieldsToSkip));
mapper.setFilters(filter);
String jsonStr = mapper.writeValueAsString(currentUser);
Bu, password
alanın serileştirilmesini önleyecektir . Ayrıca password
alanların olduğu gibi serisini kaldırabilirsiniz . Yalnızca hiçbir nesnenin ObjectMapper nesnesine uygulanmadığından emin olun.
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(yourJsonStr, User.class); // user object does have non-null password field