Я сериализирую класс Java для передачи его моему клиенту в виде объекта JSON.Класс имеет различные атрибуты и набор @Transient
методов, которые объединяют подмножество этих свойств.Временные методы не имеют переменных для их резервного копирования.
public class Person {
private String firstName;
private String lastName;
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getFirstName() {
return firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getLastName() {
return lastName;
}
@Transient
public String getFullName() {
return firstName + " " + lastName;
}
}
При чтении объекта с сервера это работает нормально.Однако когда я пытаюсь сохранить объект JSON, он вызывает эту ошибку для временных методов:
"Нераспознанное поле (...), не помечено как игнорируемое"
Я не хочу вводить переменные для переходных свойств, но все же хочу передать возвращаемое значение переходных методов с сервера на клиент.Как мне этого добиться?
Я попробовал вот что, но я не уверен, полностью ли я понял идею аннотаций @Json*
:
@Transient
@JsonProperty
public String getFullName() {
return firstName + " " + lastName;
}
@JsonIgnore
public void setFullName(String fullName) {
// Empty method
}
По моему мнению, наличие пустого сеттера не имеет большого смысла.Но, может быть, мое предположение о передаче атрибута без свойства, представляющего его, было неверным, в первую очередь!?