我有一个端点,应将字符串值读取为主体。
@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相同)?
如果您使用Jackson作为JSON解析器,则只需使用type声明参数即可TextNode。这是表示JSON字符串的Jackson类型。
TextNode
public String updateName(@PathVariable(MY_ID) String myId, @RequestBody TextNode name) {
然后,您可以使用其asText方法来检索其文本值。
asText