在Spring Boot控制器方法中,我可以将json post请求主体映射到POJO,例如。
@PostMapping(value = "/abc")
public String handleABC(
@RequestBody User user
) {
//code here...
}
我还可以将原始请求正文作为字符串检索:
@PostMapping(value = "/abc")
public String handleABC(
@RequestBody String request
) {
//code here...
}
我的问题是如何将请求体映射到POJO,并将原始请求体作为字符串检索(用于日志目的)。
谢谢
这应该管用
@PostMapping(value = "/abc")
public String handleABC(
@RequestBody String request
) {
User user = objectMapper.readValue(request,User.class);
logger.log(request);
//code here...
}
通常,SpringBoot默认情况下将使用Jackson作为序列化框架。
如果没有效果,您可以检查您的配置,并继承WebMvcConfigrerAdapter重写configureMessageConverters
序列化方法和特定行为。
这样地:
我使用FastJson作为序列化框架,你可以在这里设置Jackson的配置,而不是像我那样
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {
/**
* custom MessageConverter
* @param converters
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
FastJsonHttpMessageConverter4 converter = new FastJsonHttpMessageConverter4();
FastJsonConfig config = new FastJsonConfig();
converter.setFastJsonConfig(config);
converter.setDefaultCharset(Charset.forName("UTF-8"));
converters.add(converter);
}
}
我正在使用Spring实现一个RESTful web服务。其中一个endpoint接收JSON字符串作为请求体,我希望将其映射到POJO。然而,现在看来传入的JSON字符串并没有映射到POJO的属性。 这里是@RestController界面 数据模型 最后是我的发帖请求: 与内容类型指定为应用程序/json 但是,当我打印出对象值时,打印出的是默认值(“first”和“last”),而不是我传入
问题内容: 所以我在与node.js一起运行的server.js文件中有以下代码。我正在使用express处理HTTP请求。 我在终端中运行以下命令: 运行该server.js后,将输出以下内容。 所以req.body是。我阅读了其他有关类似问题的Stack Overflow帖子,其中由于正文解析器,内容类型不正确。但这不是问题,因为内容类型是application / json。 有什么想法如何
我试图为PUT api创建一个单元测试,如下所示,使用一个String[]作为请求体。 我的测试如下所示 测试失败,但有以下例外: 从mockmvc传递字符串数组参数的最佳方法是什么?
我需要将一个json字符串作为值传递给POST请求正文的一个参数。我的请求正文如下所示: 对于参数3,我需要以json格式传递一个字符串值。json文件位于我的本地系统中,是一个巨大的文件,所以如果我可以将其作为jmeter变量传递,这是有意义的。我尝试了以下方法: 添加JSR223预处理器后,代码如下: 但我得到以下错误: 有人能帮我解决这个问题吗?
我有一个接受JSON的应用程序。它有一个带有@RestController的控制器,然后是一个 这“起作用”是因为它接受根据“MyRequest”对象有效的JSON并对其进行处理。我感兴趣的是捕捉JSON无效的时间。 目前,当有不良数据时会发生什么是Spring似乎会向标准输出写入这样的内容: 这一切都很好,但我想看看请求是什么,这是不好的,这样我就可以在源代码端修复它。 我在玩写“Control
问题内容: 将请求正文与GET请求一起传递是否违反REST风格? 例如在Elasticsearch中过滤一些信息 甚至设计了一些工具来避免GET请求中的请求主体(例如邮递员) 问题答案: 从RFC: GET请求消息中的有效负载没有定义的语义。在GET请求上发送有效内容正文可能会导致某些现有实现拒绝该请求。 换句话说,这不是禁止的,但是它是未定义的行为,应避免使用。HTTP客户端,服务器和代理可以随