Я унаследовал проект Spring MVC 3.1.1, и мне нужно использовать Jackson для сериализации объектов в JSON. У меня есть класс объектов, как:Как настроить/настроить аннотации Jackson для работы в Spring MVC?
public class User {
Integer id;
String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
и контроллер, как это:
@Controller
@RequestMapping(value = "/home")
public class homeController {
@RequestMapping(value = "/")
public @ResponseBody User home() {
User user;
user = new User();
user.setId(1);
user.setName("Drew");
return user;
}
}
Перейдите к/дома, и я получаю:
{"id":1,"name":"Drew"}
Великий, это первый шаг вниз. Теперь, если я хочу игнорировать параметр id, в документации Jackson я должен использовать аннотацию @JsonIgnore. Проблема, с которой я сталкиваюсь, заключается в том, что NetBeans не может найти какой-либо пакет аннотаций для импорта для Jackson, поэтому я не могу использовать аннотации. Я попробовал загрузить баночки Jackson 2.2 и добавить их в свой проект (который затем позволяет мне импортировать аннотации), но аннотация @JsonIgnore не имеет никакого эффекта, когда я это делаю.
Я подозреваю, что у меня отсутствует файл jar из Spring MVC или мне нужно что-то настроить в XML-файлах проекта, как бы я узнал, является ли это (или нет)? Я относительно новичок в Java, и я никогда раньше не использовал Spring, поэтому, если есть какая-то дополнительная информация, которая была бы полезной, что я не знал, что вам нужно, спросите, и я сделаю все возможное, чтобы найти ее. Заранее благодарим за любую помощь, которую вы можете дать!
редактировать:
Чтобы уточнить, я попытался с помощью аннотаций, как это:
public class User {
Integer id;
String name;
@JsonIgnore
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@JsonProperty("userName")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
и так:
@JsonIgnoreProperties({"id"})
public class User {
Integer id;
String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@JsonProperty("userName")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
и возвращаемый JSON всегда одинаково:
{"id":1,"name":"Drew"}
Вы используете maven или что-то в этом роде, или используете только систему зависимостей NetBeans? –
Нет Maven, просто NetBeans. – asgallant
Убедитесь, что у вас нет как Jackson1 (codehaus), так и Jackson2 (quickxml) в вашем пути к классам. –