0

我正在尝试构建一个 springmvc 应用程序。在其中一项操作中,我希望它对 JSON 内容进行 POST。我发送以下值:

POST /TestResults/create.json HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Cache-Control: no-cache

[ { "test_name": "value1", "test_time": "111"} ]

但是,当我发送它时,我收到以下错误:

The request sent by the client was syntactically incorrect.

我的动作是这样的:

@RequestMapping(value="/create", method=RequestMethod.POST, consumes = "application/json")
@ResponseBody
public ModelAndView createTest(@RequestBody TestResult test_result) {

当我将动作更改为public ModelAndView createTest(@RequestBody String test_result) {动作确实成功但当时我使用的是“字符串”。

是否有可能知道我可能做错了什么?

4

1 回答 1

0

您收到的 JSON 是一个 JSON 数组。除非您有自定义反序列化器,否则 JSON 数组不能映射到类似 的类型TestResult,除非它是Collection. 你会想要使用类似的东西

public ModelAndView createTest(@RequestBody List<TestResult> testResults) {

因为@RequestBody String它可以工作,因为 Spring 所要做的就是从请求正文中读取并将字节转换为String.

于 2013-09-26T22:22:40.877 回答