J'ai hérité d'un projet dans Spring MVC 3.1.1 et j'ai besoin d'utiliser Jackson pour sérialiser les objets en JSON. J'ai une classe d'objets comme:Comment configurer/configurer les annotations Jackson pour qu'elles fonctionnent dans 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;
}
}
et un contrôleur comme ceci:
@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;
}
}
Naviguer vers/home et je reçois:
{"id":1,"name":"Drew"}
Grande, qui est la première étape vers le bas. Maintenant, si je veux ignorer le paramètre "id", la documentation de Jackson dit que je devrais utiliser l'annotation @JsonIgnore. Le problème que j'ai est que NetBeans ne peut localiser aucun des paquets d'annotations à importer pour Jackson, donc je ne peux pas utiliser les annotations. J'ai essayé de télécharger les fichiers jar Jackson 2.2 et d'ajouter ceux-ci à mon projet (ce qui me permet ensuite d'importer les annotations), mais l'annotation @JsonIgnore n'a aucun effet quand je le fais.
Je soupçonne qu'il me manque un fichier jar de Spring MVC ou que j'ai besoin de configurer quelque chose dans les fichiers XML du projet, comment pourrais-je savoir si l'un ou l'autre est le cas? Je suis relativement nouveau à Java et je n'ai jamais utilisé le printemps avant, donc s'il y a des informations supplémentaires qui seraient utiles que je ne savais pas que vous auriez besoin, s'il vous plaît demander et je ferai de mon mieux pour les localiser. Merci d'avance pour toute aide que vous pouvez donner!
modifier:
Pour clarifier les choses, je l'ai essayé d'utiliser des annotations comme ceci:
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;
}
}
et comme ceci:
@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;
}
}
et JSON retournée est toujours le même:
{"id":1,"name":"Drew"}
Utilisez-vous maven ou quelque chose comme ça, ou vous utilisez uniquement NetBeans "dependencies system"? –
Pas de Maven, juste NetBeans. – asgallant
Assurez-vous que vous n'avez pas à la fois Jackson1 (codehaus) et Jackson2 (fasterxml) dans votre classpath. –