【发布时间】:2012-02-15 07:05:08
【问题描述】:
如何轻松分离在同一请求中发送的 JSON 值?
鉴于我将 JSON 发布到我的服务器:
{"first":"A","second":"B"}
如果我在Controller中实现以下方法:
@RequestMapping(value = "/path", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public void handleRequest(@RequestBody String input) {
// ...
}
那么input 参数将与整个JSON 对象{"first":"A","second":"B"} 构成一个字符串。我真正想要的是两个单独的字符串(或一个字符串和一个适合特定请求的整数),只有两个值(客户端可能发送的其他键/值对应该被忽略)。
如果字符串是作为请求参数而不是 JSON 请求正文发送的,那就很简单了:
@RequestMapping(value = "/path", method = RequestMethod.POST)
public void handleRequest(@RequestParam("first") String first,
@RequestParam("second") String second) {
// ...
}
我知道我可以创建一个简单的 bean 类,它可以与 @RequestBody 注释结合使用,使用时将包含 A 和 B,但这似乎是一个弯路,因为它们将有网络应用内的不同用途。
依赖关系: org.springframework:spring-web:3.1.0.RELEASE org.codehaus.jackson:杰克逊-映射器-asl:1.9.3
【问题讨论】:
标签: java json spring spring-mvc jackson