SpringMVC接收json传值

SpringMVC接收json传值

什么是json
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。在JavaScript中使用如下:

//这是一个json对象,注意键名也是可以使用引号包裹的
var jsonObject = {
"username":"admin",
"password":123
}

//这是一个json字符串,本质是一个字符串
var json = '{"a": "Hello", "b": "World"}';

既然JSON有着上述两种存在方式,那我们通过ajax向SpringMVC传值的时候,我们该传哪一种呢?
我们首先尝试直接发送JSON对象,默认使用application/x-www-form-urlencoded类型:

//定义json对象
var jsonObject = {
"username":"admin",
"password":123
}

// Jquery Ajax请求
$.ajax({
    url : "jsontest",
    type : "POST",
    async : true,
    data : json,
    dataType : 'json',
    success : function(data) {
        if (data.userstatus === "success") {
            $("#errorMsg").remove();
        } else {
            if ($("#errorMsg").length <= 0) {
                $("form[name=loginForm]").append(errorMsg);
            }
        }
    }
});

SpringMVC接收如下:

@RequestMapping("/jsontest")
public void test(@RequestParam(value="username",required=true) String username,
                 @RequestParam(value="password",required=true) String password){
    System.out.println("username: " + username);
    System.out.println("password: " + password);
}

//或

@RequestMapping("/jsontest")
public void test(String username, String password){
    System.out.println("username: " + username);
    System.out.println("password: " + password);
}

发送json字符串,contentType 为 application/json:

$.ajax({
       url : "jsontest",
       type : "POST",
       async : true,
       contentType : "application/json",
       data : JSON.stringify(json),
       dataType : 'json',
       success : function(data) {
           if (data.userstatus === "success") {
               $("#errorMsg").remove();
           } else {
               if ($("#errorMsg").length <= 0) {
                   $("form[name=loginForm]").append(errorMsg);
               }
           }
       }
});

SpringMVC接收如下:

@RequestMapping("/jsontest")
public void test(@RequestBody(required=true) Map<String,Object> map  ){
    String username = map.get("username").toString();
    String password = map.get("password").toString();
    System.out.println("username: " + username);
    System.out.println("password: " + password);
}

//或

@RequestMapping("/jsontest")
public void test(@RequestBody String param){
    User user = JSON.parseObject(param, User.class);
    System.out.println("username: " + user.getUsername());
    System.out.println("password: " + user.getPassword);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值