本文介绍如何在JSP页面的JavaScript中声明数组和对象,利用JSP标签进行数据赋值。同时详细讲解如何处理Ajax返回的JSON数据,包括使用eval函数解析对象和数组格式的数据,并遍历数组获取具体字段值。
在JSP中声明数组与对象
1、在JSP页面的JavaScript代码中,可以直接使用JSP标签。
例如,可以定义一个包含患者ID的对象:var patientInfoList={patientId:"${session.patientId}"};。同时,可以初始化一个医生科室列表数组和一个挂号类型映射数组:var docDepList=[],noTypeMap=["","普通号","主治医生号","副主任医师号","主任医师号"];。
通过JSP的<c:forEach>标签遍历${docDepList}集合,可以将每个医生的ID和科室名称赋值给docDepList数组的对应索引位置:docDepList[${idx.index}]={doctorId:"${list.doctorId}",departmentName:"${list.departmentName}"};。
docDepList是一个数组,在JavaScript赋值时,其元素可以是对象。
patientInfoList是一个对象。
解析Ajax返回的JSON数据
2、如果Ajax返回的数据格式如下:
代码如下:
{"birthday":"1977-07-08","contactInfoList":[],"gender":"男"},可以使用eval("("+data+")").birthday来获取birthday字段的值。
如果数据格式为[{"contactInfo_ID":0,"create_Time":""create_Time}],这相当于一个数组,可以使用eval("("+data+")")[0].create_Time来获取第一个元素的create_Time字段值。
如果数据格式为[{"contactInfo_ID":0,"create_Time":""create_Time},{"contactInfo_ID":0,"create_Time":""create_Time}],{"contactInfo_ID":0,"create_Time":""create_Time},{"contactInfo_ID":0,"create_Time":""create_Time}],这同样是一个数组。
var dataArr=eval("("+data+")");
for(var i=0;i<dataArr.length;i++){
alert(dataArr[i].create_Time);
}