我在这里寻找一些解决方案,但我没有找到我的问题的任何正确答案,所以我想问你。
我有一些简单的属性的 POJO。和另一个 POJO 的一个列表。
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);
}
问题是,我能否使用 jQuery 获得标准 POJO 中的解释列表?就像是 :
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;
}
Using@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
});