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

标签 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 对象处理。我怎样才能让 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/

相关文章:

java - Docker + Spring Boot 错误 : could not create Vfs. 来自 url 的目录

javascript - 在服务器上提供本地货币格式 i18n,并在客户端上进行处理

java - Json反序列化并在启动时保存到JPA

java - 在递归函数中初始化变量

java - 如何在Java中加载和使用第三方.dll的功能

java - 我可以在 tomcat 3.3.1 上使用哪种 Web 服务引擎?

java - 为什么activemq web控制台没有出现在所有浏览器上,只有firefox上出现

java - Spring REST @Query 可变参数

java - 何时在 Springs @Configuration 中将 proxyBeanMethods 设置为 false?

java - Resteasy 客户端抛出异常