java - 在 Controller 中使用@requestBody 中的 Json 对象而不是映射到 POJO 的最佳方法

标签 java json spring

通常我们将@RequestBody 中的对象映射到 Controller 中的某个POJO。为了映射到 POJO,我们应该知道来自 @RequestBody 对象的字段。所以,我的问题是,如果您不知道请求主体中的字段,那么在 Controller 中使用此对象的最佳方式是什么。

像吗?

@RequestMapping(value = "/students", method = RequestMethod.POST, consumes = "application/json")
public @ResponseBody Student getStudent(@RequestBody String json) {
      // then parse the json string into object...
} 

请分享一些创新的想法。提前致谢。

最佳答案

更新的答案

根据问题的更新描述,如果您已经在使用 Jackson,那么以下代码将为您提供 json 字符串的映射。

ObjectMapper mapper = new ObjectMapper();
Map<String,Object> map = mapper.readValue(json, Map.class);

注意:我已经创建了一个新的 ObjectMapper 实例,如果您已经为您的应用程序定义了一个 ObjectMapper bean,您可以使用它。

关于java - 在 Controller 中使用@requestBody 中的 Json 对象而不是映射到 POJO 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884941/

相关文章:

带有条件的javascript过滤方法

json - JOLT 仅在不为 NULL 时连接

java - Bean 验证不起作用

java - 使用 java 和 JSON 生成一组空的 Json 大括号

Spring JPA - 对非实体列进行排序时出现问题

java - 如何根据 xml 元素的值通过 java 中的 xsd 验证 xml

java - 按照已设置的顺序迭代 HashMap

java - TLS 将 SSLEngine 下载中间证书

java - 使用另一个 java 文件中的文本设置 JTextField 的内容

java - setSize(WIDTH, HEIGHT) 和 setSize(new Dimension(WIDTH, HEIGHT)) 之间的区别