我在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;
}
}
浏览到/ home我得到:
{"id":1,"name":"Drew"}
大,这是第一个下台。现在,如果我想忽略“id”参数,Jackson文档说我应该使用@JsonIgnore注释。我遇到的问题是NetBeans无法找到任何要为Jackson导入的注释包,因此我无法使用注释。我尝试下载Jackson 2.2 jar包并将其添加到我的项目中(然后允许我导入注释),但是当我这样做时,@JsonIgnore注释不起作用。
我怀疑我错过了一个来自Spring MVC的jar文件,或者我需要在项目的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(fasterxml)。 –