先在前台通过ajax获取后台的json数据,
js代码:
$.ajax({
url:"getScheduleTableByEmployeeId",
data:{"employeeId":employeeId},
dataType:"json",
type:"post",
async:false,
success:function(table){}
后台java代码:
@ResponseBody
@RequestMapping(value="getScheduleTableByEmployeeId",produces="application/json;charset=UTF-8")
public String GetScheduleTableByEmployeeId(String employeeId){
JSONArray scheduleTable=scheduleservice.getScheduleTableByEmployeeId(employeeId);
return scheduleTable.toString();
}
框架是ssm框架,所以要在对应的controller上使用相应的注解。返回的json参数要使用tostring方法转换成json字符串类型。
因为mybatis所sql配置中,设置的返回参数类型是对象,对象中封装的日期时间类型都是date。
对这些数据的处理可以在前台进行页可以在后台进行,本次是在js中对传回的参数进行处理。
首先jsonarray返回的json字符串是按数组的类型进行存储的,即取对应的数据要通过json[]来遍历,遍历的方法与数组遍历方法相同,使用for循环遍历。
例:
String StrData="[
{\"name\":\"zhangsan\"},
{\"age\":\"18\"}
]";
通过strdata[0]获得第一个对象。strdata[0].name取得第一个对象的name值。
同样的早js中采用相同的方法遍历jsonarray,
function jsonDateFormat(jsonDate) {//json日期格式转换为正常格式
var year = jsonDate.year+1900;
var month = jsonDate.month+1;
var day = jsonDate.date;
month=(month>9)?(""+month):("0"+month); //如果得到的数字小于9要在前面加'0'
day=(day>9)?(""+day):("0"+day);
return year + "-" + month + "-" + day;
}
function jsonTimeFormat(jsonTime){
var hour=jsonTime.hours;
var minute=jsonTime.minutes;
hour=(hour>9)?(""+hour):("0"+hour);
minute=(minute>9)?(""+minute):("0"+minute);
return hour+":"+minute;
}
取到所需要的时间数据后,在通过上面的两个函数分别对日期和时间进行格式化,因为在java中date类型的参数年份是从1900年算起,例如今年是2017年,就以117来存储。月份默认从0开始,所以在格式化的时候要+1;
需要注意的是,在日期的格式化中,jsonDate.date得到的才是当前日期,而jsonDate.day获得的是星期。

本文介绍如何在SSM框架中利用Ajax获取后台的Json数据,并在前端JavaScript中处理日期时间格式。通过示例代码展示了数据获取及格式化的具体实现。
684

被折叠的 条评论
为什么被折叠?



