Вы можете взломать эту логику в своем общедоступном сеттере.Например:
class MyPojo {
// no need for this annotation here actually, covered by setter
// at least for deserialization
@JsonProperty
String email;
String first;
String last;
@JsonProperty("email")
public void setEmail(String email) {
this.email = email;
String[] split = email.split("@");
// TODO check length etc.
this.first = split[0];
this.last = split[1];
}
// just for testing
@Override
public String toString() {
return String.format(
"email: %s, first: %s, last: %s%n", email, first, last
);
}
}
Затем, где-то еще ...
String json = "{ \"email\": \"xyz@hello.com\"}";
ObjectMapper om = new ObjectMapper();
MyPojo pojo = om.readValue(json, MyPojo.class);
System.out.println(pojo);
Выход
email: xyz@hello.com, first: xyz, last: hello.com