因为是复杂json,我有2个或者多个简单javabean类,将多个简单javabean 拼接成json这一步实现不出,
然后我想前端ajax应该能调用后端这个类 把json异步传给前端,但是当前端拿到数据之后,我不知道怎么给表格动态拼接。
张三 男 语文 90 80 60 70
数学 90 90 90 90
英语
物理
化学
//例如有一个实体类
public class StudentGrade{
//姓名
private String name;
//姓名(0=男;1=女)
private Integer sex;
//学科
private String subject;
//高一上学期分数
private Float lastSemesterFirstGrade;
//高一下学期分数
private Float nextSemesterFirstFrade;
//高二上学期分数
private Float lastSemesterSecondGrade;
//高二上学期分数
private Float nextSemesterSecondFrade;
//get set
}
@Controller
@RequestMapping("studentGrade")
public class StudentGradeController{
@Resource
private XxxService xxxService;
@RequestMapping(value="/getStudentGradeData",method = RequestMethod.POST)
public String getStudentGradeData(){
//通过接口获取的list数据,然后转json
List<StudentGrade> list = xxxService.getStudentGradeData();
JSONArray json = JSONArray.fromObject(list);
return json.toString();
}
}
//ajax
$.ajax({
type: "POST",
url: "xx/studentGrade/getStudentGradeData",
data: null,
dataType: "json",
success: function(json){
//判断非null非空
var list = json;
var tableHtml = '<table><th><tr></tr>...以此类推</th>';
for(var i = 0; i < list.length; i ++){
//这里加个判断,0=男,1=女
tableHtml += '<tr><td>' + list[i].name + '</td><td>' + list[i].sex + '...以此类推</td></tr>';
}
tableHtml += '</table>'
//最后tableHtml就是拼好的 table html,
}
});
那你可以拼接实体类呀,按照你想要的格式,实体类里面套实体类然后转json就ok了举个例子 class User{ private Student student; private Integer id}
新建个包装类,每个javabean定义成它的一个属性,变量类型可以根据需要组合定义,比如学科和学期分数可以定义成Map类型:
Map<String, List<Stage>>
包装类序列化输出即可。