1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java获取前端json数据_java如何获取前端ajax传来的json对象

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

时间:2019-05-15 20:36:00

相关推荐

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 + '\'' +

'}';

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。