如何不使用@RequestBody注解,就能正确接收到的前端json对象传参
时间: 2023-10-17 07:21:50 浏览: 80
如果不使用@RequestBody注解,可以使用@RequestParam注解或者@PathVariable注解来接收前端传递的JSON对象参数。具体方法如下:
1. 使用@RequestParam注解接收前端传递的JSON对象参数,需要将JSON对象转换成字符串后再进行传输,可以使用JSON.stringify()方法将JSON对象转换成字符串,例如:
```
fetch('/api/test?obj=' + JSON.stringify({ name: 'Tom', age: 18 }), {
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
})
```
在后端接口中使用@RequestParam注解来接收对象参数,例如:
```
@PostMapping("/test")
public String test(@RequestParam("obj") String obj) {
// 将参数字符串转换成对象
JSONObject jsonObject = JSONObject.parseObject(obj);
String name = jsonObject.getString("name");
Integer age = jsonObject.getInteger("age");
// do something
}
```
2. 使用@PathVariable注解接收前端传递的JSON对象参数,参数可以直接拼接在URL中进行传输,例如:
```
fetch('/api/test/' + JSON.stringify({ name: 'Tom', age: 18 }), {
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
})
```
在后端接口中使用@PathVariable注解来接收对象参数,例如:
```
@PostMapping("/test/{obj}")
public String test(@PathVariable("obj") String obj) {
// 将参数字符串转换成对象
JSONObject jsonObject = JSONObject.parseObject(obj);
String name = jsonObject.getString("name");
Integer age = jsonObject.getInteger("age");
// do something
}
```
以上两种方式可以帮助你正确接收前端传递的JSON对象参数。
阅读全文