一尘不染

如何自动将String @RequestBody解析为json

spring-boot

我有一个端点,应将字符串值读取为主体。

@RestController
public class EndpointsController {
   @RequestMapping( method = RequestMethod.PUT, value = "api/{myId}/name", consumes= MediaType.APPLICATION_JSON )
   public String updateName( @PathVariable( MY_ID ) String myId, @RequestBody String name) {

     //will be: "new name"
     //instead of : newname
     return myId;
   }
}

我的问题是,客户端将使用正确的恕我直言的“新名称”来调用此名称,但服务器使用引号将其读取,因为它不将字符串作为json对象处理。我如何告诉杰克逊也解析字符串(与Pojos相同)?


阅读 1015

收藏
2020-05-30

共1个答案

一尘不染

如果您使用Jackson作为JSON解析器,则只需使用type声明参数即可TextNode。这是表示JSON字符串的Jackson类型。

public String updateName(@PathVariable(MY_ID) String myId, @RequestBody TextNode name) {

然后,您可以使用其asText方法来检索其文本值。

2020-05-30