SpringBoot前端传到后端参数为String类型,怎么让它转为对象。已经使用了@RequestBody但仍然无效。给出解决的具体代码
时间: 2023-06-19 17:08:15 浏览: 158
如果前端传递的是一个JSON字符串,可以在后端使用@RequestBody注解将其转换为一个对象,具体代码如下:
```java
@PostMapping("/example")
public void example(@RequestBody ExampleParam exampleParam) {
// do something with exampleParam
}
```
其中,ExampleParam是你定义的一个POJO对象,用于接收前端传递的参数。在上述例子中,@RequestBody注解将前端传递的JSON字符串转换为ExampleParam对象。
如果这种方式仍然无效,你可以尝试使用Jackson的ObjectMapper类手动将JSON字符串转换为对象。具体代码如下:
```java
@PostMapping("/example")
public void example(@RequestBody String jsonString) throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
ExampleParam exampleParam = objectMapper.readValue(jsonString, ExampleParam.class);
// do something with exampleParam
}
```
这里使用ObjectMapper的readValue方法将JSON字符串转换为ExampleParam对象。注意,这里的jsonString参数必须是一个符合JSON格式的字符串。如果无法转换,将会抛出JsonProcessingException异常。
阅读全文