[JSON] 前后台如何通过$.ajax()传输JSON数据

时间:2022-12-07 20:17:57

说明:slesecByPriomaryKey是通过empno来获得Emp对象.

前台1:

    $(function() {
        $.ajax({
            type : "POST", url : "emp/empjson", data : "empno=7788", success : function(msg) { alert("Data Saved: " + msg.empno+"|"+msg.ename); } }); });

 

后台1:

@RequestMapping("/empjson")
    @ResponseBody  //格式化为json格式的数据
    public Emp getEmp(int empno){
        Emp emp=es.selectByPrimaryKey(empno);
        return emp;
    }

1.将empno=7788作为参数传入给getEmp(int empno)方法,

data :empno=7788 中的empno和形参必须保持一致.

不能因为只有一个参数而写成"7788"或者7788,这都是不可以的.

此外data必须用引号括起来...

 

 

此外,data还可以使用json的模式.

 data : {empno : "7788"},key加双引号

data : {"empno" : "7788"},key不加双引号

dataType表示返回(response)的类型.

也必须用括号引起来,"json"表示返回json类型,"text"表示纯文本.

返回的结果:msg,一旦返回成功,作为参数传给弹窗函数中.

json格式的数据可以通过"."来引用其子元素,如emp.empno.

---------------

上面是通过参数直接传递的,还可以写成

    @RequestMapping("/empjson2")
    @ResponseBody  //格式化为json格式的数据
    public Emp getEmp(HttpServletRequest req){
        String empno=req.getParameter("empno");
        System.out.println(empno);
        Emp emp=es.selectByPrimaryKey(Integer.parseInt(empno));
        System.out.println(emp);
        return emp;
    }