Spring MVC 3.1.1 でプロジェクトを継承しました。Jackson を使用してオブジェクトを JSON にシリアル化する必要があります。次のようなオブジェクトクラスがあります。
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"}