如何将这个由SpringMVC控制器方法构建的JSON封装到包装器中?
我对SpringMVC非常陌生,这是我第一次制作JSON 因此,我有以下情况: 我有两个模型课: 1) 国家数据:如何将这个由SpringMVC控制器方法构建的JSON封装到包装器中?,json,spring-mvc,Json,Spring Mvc,我对SpringMVC非常陌生,这是我第一次制作JSON 因此,我有以下情况: 我有两个模型课: 1) 国家数据: public class CountryData { private String label; private String subdataConcat; private ArrayList<CountryDataChild> countryDataChildList; public CountryData(String lab
public class CountryData {
private String label;
private String subdataConcat;
private ArrayList<CountryDataChild> countryDataChildList;
public CountryData(String label, String subdataConcat, ArrayList<CountryDataChild> countryDataChildList) {
super();
this.label = label;
this.subdataConcat = subdataConcat;
this.countryDataChildList = countryDataChildList;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getSubdataConcat() {
return subdataConcat;
}
public void setSubdataConcat(String subdataConcat) {
this.subdataConcat = subdataConcat;
}
public ArrayList<CountryDataChild> getCountryDataChildList() {
return countryDataChildList;
}
public void setCountryDataChildList(ArrayList<CountryDataChild> countryDataChildList) {
this.countryDataChildList = countryDataChildList;
}
}
public class CountryDataChild {
private String label;
private String code;
public CountryDataChild(String label, String code) {
super();
this.label = label;
this.code = code;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
最后,在控制器类中,我有一个控制器方法,该方法生成一个JSON,其中包含CountryData信息:
@RequestMapping(value="/getCountryData", method = RequestMethod.GET)
public @ResponseBody CountryData getShopInJSON() {
ArrayList<CountryDataChild> countryDataChildList = new ArrayList<CountryDataChild>();
CountryDataChild child1 = new CountryDataChild("Lazio", "lazio");
CountryDataChild child2 = new CountryDataChild("Lombardia", "lombardia");
countryDataChildList.add(child1);
countryDataChildList.add(child2);
CountryData countryData = new CountryData("Italia", "y", countryDataChildList);
return countryData;
}
好的,唯一的问题是,根据提供的规范,该对象必须:
countrydata({"label":"Italia","subdataConcat":"y","countryDataChildList":[{"label":"Lazio","code":"lazio"},{"label":"Lombardia","code":"lombardia"}]})
因此,基本上生成的JSON必须包装在countrydata(…)
如何实现此规范?我遗漏了什么?看起来您正在尝试生成JSONP,而不是普通的JSON。使用Spring MVC实现这一点的一种方法是保持
控制器的原样,然后创建一个过滤器,如下所述:
在这里,您可以将JSON包装到countrydata
函数中,并将内容类型设置为text/javascript
countrydata({"label":"Italia","subdataConcat":"y","countryDataChildList":[{"label":"Lazio","code":"lazio"},{"label":"Lombardia","code":"lombardia"}]})