このあたりで解決策を探していたのですが、私の質問に対する正しい答えが見つからなかったので、お尋ねしたいと思います。
いくつかの単純な属性を持つ POJO があります。および別の POJO の 1 つのリスト。
public class Standard implements Serializable {
private String id;
private String title;
private String description;
private Set<Interpretation> interpretations = new LinkedHashSet<Interpretation>();
}
public class Interpretation implements Serializable {
private String id;
private String title;
private String description;
}
私のコントローラ クラスでは、GSON を使用して標準 POJO を返しています。
@RequestMapping(value="/fillStandard", method= RequestMethod.GET)
public @ResponseBody String getStandard(@RequestParam String id) {
Standard s = DAOFactory.getInstance().getStandardDAO().findById(id);
return new Gson().toJson(s);
}
問題は、標準 POJO で jQuery を使用して解釈のリストを取得できるかどうかです。何かのようなもの :
function newStandard() {
$.get("standard/fillStandard.htm", {id:"fe86742b2024"}, function(data) {
alert(data.interpretations[0].title);
});
}
どうもありがとう !
編集: まあ、@Atticus のおかげで、私の問題の解決策があります。それが誰かを助けることを願っています。
@RequestMapping(value="/fillStandard", method= RequestMethod.GET, produces="application/json")
public @ResponseBody Standard getStandard(@RequestParam String id) {
Standard s = DAOFactory.getInstance().getStandardDAO().findById(id);
return s;
}
を使用@ResponseBody
すると POJO 全体を返すことができますが、注釈に追加produces="application/json"
する必要があります。@RequestMapping
そうすれば、私が想定していたように、返されたオブジェクトを jQuery で JSON としてキャッチできるようになります。
function newStandard() {
$.get("standard/fillStandard.htm", {id:"idOfStandard"}, function(data) {
alert(data.id); //Standard id
alert(data.interpretations[0].title); //id of Interpretation on first place in array
});