当前位置: 移动技术网 > IT编程>开发语言>Java > JAVA实现JSON后端向前端传递数据

JAVA实现JSON后端向前端传递数据

2019年07月22日  | 移动技术网IT编程  | 我要评论

玩命速递4,柳絮的图片,北京糖果ktv

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<dateformat> threadlocal = new threadlocal<dateformat>() {
    @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<t> {
  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<map<string, integer>> getuseramount() {
  jsonresult<map<string, integer>> result = new jsonresult<>();
  try {
    //已签到人数
    integer signedamount = userservice.getsignedamount();
    //总人数
    integer totaluseramount = userservice.gettotaluseramount();
    map<string, integer> 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;
    }
  });
}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网