Изменить имя поля в JSON с помощью Jackson
я использую Джексона для преобразования моего объекта в json. Объект имеет 2 поля:
@Entity
public class City {
@id
Long id;
String name;
public String getName() { return name; }
public void setName(String name){ this.name = name; }
public Long getId() { return id; }
public void setName(Long id){ this.id = id; }
}
поскольку я хочу использовать это с функцией автоматического завершения jQuery, я хочу, чтобы " id "отображался как" значение "в json и" имя "отображалось как "метка". Документация Джексона не ясна по этому поводу, и я пробовал каждую аннотацию, которая даже отдаленно кажется, что она делает то, что мне нужно, но я не могу получить name
появится как label
и id
появится как value
в формат JSON.
кто-нибудь знает как это сделать или возможно ли это?
3 ответа:
вы пробовали использовать @JsonProperty?
@Entity public class City { @id Long id; String name; @JsonProperty("label") public String getName() { return name; } public void setName(String name){ this.name = name; } @JsonProperty("value") public Long getId() { return id; } public void setId(Long id){ this.id = id; } }
имейте в виду, что есть
org.codehaus.jackson.annotate.JsonProperty
в Джексоне 1.x иcom.fasterxml.jackson.annotation.JsonProperty
в Джексоне 2.x. проверьте, какой ObjectMapper вы используете (из какой версии), и убедитесь, что вы используете правильную аннотацию.