java获取前端json数据_java如何获取前端ajax传来的json对象

假设使用 jQuery 中的 ajax

1. Json 对象

前端代码示例

$.ajax({

url : 'http://localhost:8888/demo',

type: 'post',

data: {

'userName':'15488779956'

}

success: function(data) {

// TODO

}

})

后台代码示例

@RestController

public class Demo {

/**

* 方法 1 使用 HttpServletRequest 接收

* */

@RequestMapping("/demo")

public String getParam(HttpServletRequest request) {

return request.getParameter("userName");

}

/**

* 方法 2 使用 RequestParam 接收

* */

@RequestMapping("/demo2")

public String getParam2(@RequestParam(value = "userName") String userName) {

return userName;

}

/**

* 方法 3 与 方法 2 相同,只是变量名相同可以简化书写

* */

@RequestMapping("/demo3")

public String getParam3(String userName) {

return userName;

}

}

2. Json 字符串

$.ajax({

url : 'http://localhost:8888/demo',

type: 'post',

contentType:'application/json;charset=UTF-8',//关键

data: '{"userName":"15488779956"}',

success: function(data) {

// TODO

}

})

后台示例代码

@RestController

public class Demo {

/**

* 方法 1 使用 字符串分割获取值

* */

@RequestMapping("/demo")

public Map getParam(HttpServletRequest request) {

// 获取所有参数

Enumeration params = request.getParameterNames();

// 测试只有一条数据

String param = params.nextElement();

// 字符串分割

String paramKey = param.split(":")[0].replace("\"", "").replace("{", "");

String paramValue = param.split(":")[1].replace("\"", "").replace("}", "");

Map result = new HashMap<>();

result.put(paramKey, paramValue);

return result;

}

/**

* 方法 2 使用 Gson 与对应对象获取值

* */

@RequestMapping("/demo2")

public Object getParam2(HttpServletRequest request) {

// 获取所有参数

Enumeration params = request.getParameterNames();

// 测试只有一条数据

String param = params.nextElement();

Gson gson = new Gson();

return gson.fromJson(param, Req.class);

}

/**

* 方法 3 使用 Requestbody 实体进行接收

* */

@RequestMapping(value = "/demo3")

public String getParam3(@RequestBody Req s) {

System.out.println(s.toString());

return s.getUserName();

}

}

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

/**

* 自定义的类,用于参数接收

* */

public class Req {

// 这个参数需要和 接收的数据 key 相同

private String userName;

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

@Override

public String toString() {

return "Req{" +

"userName='" + userName + '\'' +

'}';

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值