2013-09-26 60 views
0

我正在嘗試構建springmvc應用程序。在我希望它採取JSON內容POST的行動之一。我送了以下值:spring-mvc客戶端發送的請求在語法上不正確。對於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) {該動作確實成功,但當時我正在使用「字符串」。

有可能知道我可能做錯了嗎?

+0

不應該是'Mapping(value =「/ create.json」...)'(帶.json擴展名)?另外,你的servlet是否在'/ TestResults'(即web.xml中的servlet-mapping)? –

回答

0

您收到的JSON是一個JSON數組。除非您有自定義解串器,否則JSON數組無法映射到類型TestResult,除非它是Collection的某個子類型。你要使用類似

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

@RequestBody String它的工作原理,因爲所有的Spring所要做的就是請求主體讀取的字節數轉換成String

相關問題