簡體   English   中英

從JSON解析Map和String不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM