Это могло бы быть дубликатом. Но я не могу найти решение своей проблемы.
У меня есть класс
public class MyResponse implements Serializable {
private boolean isSuccess;
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
}
Методы считывания и методы set сгенерированы Eclipse.
В другом классе я установил значение к истинному, и пишу это как строку JSON.
System.out.println(new ObjectMapper().writeValueAsString(myResponse));
В JSON ключ прибывает как {"success": true}
.
Я хочу ключ как isSuccess
самостоятельно. Jackson использует метод установщика в то время как сериализация? Как сделать ключ самим именем поля?
Используя обе аннотации ниже, вынуждает вывод JSON включать is_xxx
:
@get:JsonProperty("is_something")
@param:JsonProperty("is_something")
Я не хотел смешивать с некоторыми пользовательскими стратегиями именования, ни воссозданием некоторых средств доступа.
, Чем меньше кода, тем более счастлив я.
Это добилось цели для нас:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonIgnoreProperties({"success", "deleted"}) // <- Prevents serialization duplicates
public class MyResponse {
private String id;
private @JsonProperty("isSuccess") boolean isSuccess; // <- Forces field name
private @JsonProperty("isDeleted") boolean isDeleted;
}