我有一个端点,它应该读取一个字符串值作为正文。
@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 对象处理。我怎样才能让 Jackson 也解析字符串(与 Pojos 的解析方式相同)?
最佳答案
如果您使用 Jackson 作为您的 JSON 解析器,您可以简单地使用 TextNode
类型声明您的参数。 .这是表示 JSON 字符串的 Jackson 类型。
public String updateName(@PathVariable(MY_ID) String myId, @RequestBody TextNode name) {
然后您可以使用它的 asText
方法来检索其文本值。
关于java - 如何自动将String @RequestBody 解析为json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34001725/