在控制器中使用@requestBody的Json对象而不是映射到POJO的最佳方法

时间:2015-08-07 19:05:50

标签: java json spring

通常我们将对象从@RequestBody映射到控制器上的某个POJO。为了映射到POJO,我们应该知道@RequestBody对象中的字段。所以,我的问题是如何在控制器中使用此对象的最佳方式,如果您不知道请求内的字段。

是吗?

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

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

2 个答案:

答案 0 :(得分:1)

更新了答案

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

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

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

答案 1 :(得分:0)

您可以创建JSONObject。关注http://www.json.org/javadoc/org/json/JSONObject.html