所以,我想返回一個應該如下所示的 JSON 對象:{"Issues":[{"IssueName": "Loan"},{"IssueName": "Lease"},{"IssueName": "Other"}]}到目前為止,我最接近這種格式的是通過這段代碼:@RequestMapping(value="/issueTypes", produces = MediaType.APPLICATION_JSON_VALUE) public Map<String, String> getIssue(){ HashMap<String, String> issue = new HashMap<>(); issue.put("issues", "Loan"); issue.put("issues", "Lease"); issue.put("issues", "Other"); return issue; }雖然 map 在大括號中為我提供了鍵值對,但它不允許我將相同的鍵設置為不同的值(原因很明顯)。還有其他方法可以返回上述 JSON 對象嗎?是否可以對其進行軟編碼,application.properties以便以后我想添加更多問題類型時可以輕松完成?
1 回答

陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
一種方法是使用Listof Entries 而不是Mapof Entries:
@Value("#{'${issues}'.split(',')}")
private List<String> issues;
@RequestMapping(value = "/issueTypes", produces = MediaType.APPLICATION_JSON_VALUE)
public Map<String, List<Map.Entry<String, String>>> getIssue() {
Map<String, List<Map.Entry<String, String>>> m = new LinkedHashMap<>();
m.put("Issues", issues.stream()
.map(s -> Map.entry("issueName", s))
.collect(Collectors.toList()));
return m;
}
在你的 application.properties 中:
issues=Loan,Lease,Other
輸出:
{"Issues":[{"issueName":"Loan"},{"issueName":"Lease"},{"issueName":"Other"}]}
添加回答
舉報
0/150
提交
取消