Spring MVC、Ajax和JSON的交互

第一种方式:通过实体类的方式在服务器端接受JSON数据格式,记得JSON中的属性需要跟类的属性想匹配。

页面代码示例:
    function test(){
            var jon ={name:"测试",pass:"1234"};
            $.ajax({
                    type: "POST",
                    url: "testFanTai1.do",
                    data:jon,
                    success: function(msg) {
                        var resmsg = eval_r("("+msg+")");
                        alert(resmsg.name+"---"+resmsg.pass);
                    }
                })
    }

Action代码示例:
@RequestMapping(value="/testFanTai1")
    public @ResponseBody String testFanTai1(UserTest user){
        String result =
                "{"name":""+user.getName()+"","pwd":""+user.getPass()+""}";
        return result;
    }

第二种方式:服务器以字符串的方式获取JSON数据,但是数据要进行转码。

页面代码示例:
    function test(){
            var jon ={name:"测试",pass:"1234",id:4};
            $.ajax({
                    type: "POST",
                    url: "testFanTai1.do",
                    contentType:"application/json",
                    data: JSON.stringify(jon),
                    success: function(msg) {
                        var resmsg = eval_r("("+msg+")");
                        alert(resmsg.name+"---"+resmsg.pass);
                    }
                })
    }

Action代码示例:
@RequestMapping(value="/testFanTai1")
    public @ResponseBody String testFanTai1(@RequestBody String jon) throws UnsupportedEncodingException{
        String result =URLDecoder.decode(jon, "UTF-8");   //可以用,也可以不用
        //字符串转换为JSONObject对象,然后JSONObject对象转换为Map对象
        JSONObject jsonObject = JSONObject.fromObject(result);
        Map map = jsonObject;
        return result;
    }

第三种方式:直接以字符串的方式提交。

页面代码示例:
    function test(){
            var jon ={name:"测试",pass:"1234",id:4};
            $.ajax({
                    type: "POST",
                    url: "testFanTai1.do",
                    contentType:"application/json",
                    data: "jon="+jon,
                    success: function(msg) {
                        var resmsg = eval_r("("+msg+")");
                        alert(resmsg.name+"---"+resmsg.pass);
                    }
                })
    }

Action代码示例:
@RequestMapping(value="/testFanTai1")
    public @ResponseBody String testFanTai1(String jon) throws UnsupportedEncodingException{
        String result =URLDecoder.decode(jon, "UTF-8");   //可以用,也可以不用
        //字符串转换为JSONObject对象,然后JSONObject对象转换为Map对象
        JSONObject jsonObject = JSONObject.fromObject(result);
        Map map = jsonObject;
        return result;
    }

第四种方式:Action以Map的方式接收JSON数据。

页面代码示例:
    function test(){
            var jon ={name:"测试",pass:"1234",id:4};
            $.ajax({
                    type: "POST",
                    url: "testFanTai1.do",
                    contentType:"application/json",
                    data: JSON.stringify(jon),
                    success: function(msg) {
                        var resmsg = eval_r("("+msg+")");
                        alert(resmsg.name+"---"+resmsg.pass);
                    }
                })
    }

Action代码示例:
@RequestMapping(value="/testFanTai1")
    public @ResponseBody String testFanTai1(@RequestBody Map info) {
        JSONObject json = JSONObject.fromObject(info);
        String result =json.toString();
        return result;
    }


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值