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

时间:2015-11-30 15:09:44

标签: java spring rest spring-boot jackson

我有一个端点,应该将字符串值作为正文读取。

@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相同)?

1 个答案:

答案 0 :(得分:11)

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

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

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