【发布时间】:2016-04-13 16:31:37
【问题描述】:
我是 Spring MVC 的新手,这是我第一次生成 JSON。
所以我有以下情况:
我有这 2 个模型类:
1) 国家数据:
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;
}
}
2) CountryDataChild:
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;
}
}
最后进入一个控制器类,我有这个控制器方法,它生成一个包含 CountryData 信息的 JSON:
@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;
}
这很好用,当它执行时,生成这个 JSON 作为输出到我的浏览器:
{"label":"Italia","subdataConcat":"y","countryDataChildList":[{"label":"Lazio","code":"lazio"},{"label":"Lombardia","code":"lombardia"}]}
好的,唯一的问题是根据提供的规范,这个对象必须是:
countrydata({"label":"Italia","subdataConcat":"y","countryDataChildList":[{"label":"Lazio","code":"lazio"},{"label":"Lombardia","code":"lombardia"}]})
所以基本上生成的 JSON 必须包含在 countrydata(...)
中如何实现这个规范?我错过了什么?
【问题讨论】:
标签: json spring-mvc