JAVA实现JSON后端向前端传递数据
1后端两个辅助类
ConcurrentDateUtil.Java,用于生成我们需要格式的时间
importjava.text.DateFormat;
importjava.text.ParseException;
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassConcurrentDateUtil{
privatestaticThreadLocalthreadLocal=newThreadLocal(){
@Override
protectedDateFormatinitialValue(){
returnnewSimpleDateFormat("yyyy-MM-ddhh:mm:ss");
}
};
publicstaticDateparse(StringdateStr)throwsParseException{
returnthreadLocal.get().parse(dateStr);
}
publicstaticStringformat(Datedate){
returnthreadLocal.get().format(date);
}
}
JsonResult.java,JsonResult封装,用于后端向前端传递数据
importcom.sf.utils.ConcurrentDateUtil; importjava.util.Date; publicclassJsonResult{ publicstaticintNEED_RE_LOGIN=1; publicstaticintNEED_RETRY=2; privateinterrCode; privateStringmessage; privateStringtimestamp=ConcurrentDateUtil.format(newDate()); privateTdata; publicStringgetMessage(){ returnmessage; } publicvoidsetMessage(Stringmessage){ this.message=message; } publicStringgetTimestamp(){ returntimestamp; } publicTgetData(){ returndata; } publicvoidsetData(Tdata){ this.data=data; } publicintgetErrCode(){ returnerrCode; } publicvoidsetErrCode(interrCode){ this.errCode=errCode; } }
上面这两个类完成之后,我们就可以在web层的controller中使用JsonResult封装数据并传递到前端。
接下来介绍两种情况,看看前端怎么取数据出来
2前端JS怎么取出数据
如果后端传给前端的JsonResult封装的是一个Map,例如
@ResponseBody @RequestMapping(value="/user/getUserAmount",method=RequestMethod.POST) publicJsonResult
现在想在前端JS把已签到人数和总人数两个数据取出来,要怎么做呢?只需要在”.”后面跟着Map的Key就好了,如下所示:
functiongetSignedAmount(){
$.ajax({
type:"post",
url:getContextPath()+"/user/getUserAmount",
dataType:'json',
data:{
},
success:function(data){
varamount=data.data;
//取出总人数
vartotalAmount=amount.sum;
//总人数减去已经签到的人数,就是未签到的人
varunsignedNumber=amount.sum-amount.signed;
//取出后端controller中setMessage方法传过来的字符串
varlogMessage=data.message;
}
});
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。