[英]Parsing Map and String from JSON doesn't work
我正在嘗試使用spring框架設置我的第一個REST Web服務。 甚至不打擾前端之前,我想先在Controller中設置Requestmapping,然后嘗試使用Postman進行測試。
我正在使用郵遞員,設置為POST,原始,應用程序/ JSON,然后設置以下內容:
{"attendanceList" : {
"Jane Doe": "PRESENT",
"John MacDonald": "PRESENT",
"Fred Flinstone": "ABSENT"},
"date":"2017-06-01"}
在我的控制器中,我有以下內容:
@RequestMapping(value = "/post", method = RequestMethod.POST, produces = {MediaType.APPLICATION_JSON_VALUE })
@ResponseBody
public void setAttendence(@RequestBody Map<String, Attendence> attendenceList, String date) {
//Implementation code
}
但是,當我將上述發布請求發送到服務器時,我得到了大小為4的地圖:
"attendanceList" -> ABSENT (the default value)
"Jane Doe" -> PRESENT
"John MacDonald" -> PRESENT
"Fred Flinstone" -> ABSENT
而且我的String date = null
為什么這不按我打算的方式工作? 我究竟做錯了什么?
您告訴Spring,應將請求正文(即整個JSON)解析為Map<String, Attendence>
。 JSON顯然不是這樣的映射。
而是應將其映射到諸如
public class Input {
Map<String, Attendence> attendanceList;
LocalDate date;
// ...
}
當然,應該刪除Spring忽略的String date
參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.