java前后端用json传值_JAVA实现JSON后端向前端传递数据

本文介绍了JAVA后端如何使用jsonresult类和concurrentdateutil类来封装数据,并通过controller传递给前端。在前端JS中,可以通过AJAX获取JSON数据,直接通过键值获取已签到人数和总人数等信息。
摘要由CSDN通过智能技术生成

1 后端两个辅助类

concurrentdateutil.java,用于生成我们需要格式的时间

import java.text.dateformat;

import java.text.parseexception;

import java.text.simpledateformat;

import java.util.date;

public class concurrentdateutil {

private static threadlocal threadlocal = new threadlocal() {

@override

protected dateformat initialvalue() {

return new simpledateformat("yyyy-mm-dd hh:mm:ss");

}

};

public static date parse(string datestr) throws parseexception {

return threadlocal.get().parse(datestr);

}

public static string format(date date) {

return threadlocal.get().format(date);

}

}

jsonresult.java,jsonresult封装,用于后端向前端传递数据

import com.sf.utils.concurrentdateutil;

import java.util.date;

public class jsonresult {

public static int need_re_login = 1;

public static int need_retry = 2;

private int errcode;

private string message;

private string timestamp = concurrentdateutil.format(new date());

private t data;

public string getmessage() {

return message;

}

public void setmessage(string message) {

this.message = message;

}

public string gettimestamp() {

return timestamp;

}

public t getdata() {

return data;

}

public void setdata(t data) {

this.data = data;

}

public int geterrcode() {

return errcode;

}

public void seterrcode(int errcode) {

this.errcode = errcode;

}

}

上面这两个类完成之后,我们就可以在web层的controller中使用jsonresult封装数据并传递到前端。

接下来介绍两种情况,看看前端怎么取数据出来

2 前端js怎么取出数据

如果后端传给前端的jsonresult封装的是一个map,例如

@responsebody

@requestmapping(value = "/user/getuseramount", method = requestmethod.post)

public jsonresult> getuseramount() {

jsonresult> result = new jsonresult<>();

try {

//已签到人数

integer signedamount = userservice.getsignedamount();

//总人数

integer totaluseramount = userservice.gettotaluseramount();

map amountmap = new hashmap<>();

amountmap.put("signed", signedamount);

amountmap.put("sum", totaluseramount);

result.setdata(amountmap);

//这里举个例子,如果觉得setdata穿的信息不够,还可以用setmessage方法多传一个字符串过去

result.setmessage("这是签到界面");

} catch (exception e) {

log.warn(exceptionutils.getstacktrace(e));

}

return result;

}

现在想在前端js把已签到人数和总人数两个数据取出来,要怎么做呢?只需要在”.”后面跟着map的key就好了,如下所示:

function getsignedamount(){

$.ajax({

type: "post",

url : getcontextpath() + "/user/getuseramount",

datatype:'json',

data: {

},

success: function(data){

var amount = data.data;

//取出总人数

var totalamount = amount.sum;

//总人数减去已经签到的人数,就是未签到的人

var unsignednumber = amount.sum-amount.signed;

//取出后端controller中setmessage方法传过来的字符串

var logmessage = data.message;

}

});

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值