我有一些 REST 控制器生成對(duì)用戶的響應(yīng)并發(fā)送它。 @RequestMapping(method = RequestMethod.GET, value = "/hello/contacts") public ResponseEntity<Page<ContactDto>> getContacts(@RequestParam(name = "nameFilter") String nameFilter , @RequestParam(name = "page", required = false, defaultValue = "1") int page , @RequestParam(name = "size", required = false, defaultValue = "100") int size) { List<ContactDto> contacts = contactService.getContacts(nameFilter); Pageable pagiable = PageRequest.of(page - 1, size); int start = (page - 1) * size; int end = start + size; Page<ContactDto> pages; if (end <= contacts.size()) { pages = new PageImpl<>(contacts.subList(start, end), pagiable, contacts.size()); return new ResponseEntity<>(pages, HttpStatus.OK); } else { if (start < contacts.size()) { contacts.size(); pages = new PageImpl<>(contacts.subList(start, contacts.size()), pagiable, contacts.size()); return new ResponseEntity<>(pages, HttpStatus.OK); } } return new ResponseEntity<>(HttpStatus.NO_CONTENT); }發(fā)送響應(yīng)后,用戶將獲得下一種格式的 JSON 響應(yīng):{ "content": [ { "id": 1, "name": "Rm7W8bDq7z" }, { "id": 2, "name": "vYYWLImOWe" }, { "id": 3, "name": "gRKokZFEdf" }],`` "pageable": { "sort": { "sorted": false, "unsorted": true, "empty": true }, "offset": 0, "pageNumber": 0, "pageSize": 100, "paged": true, "unpaged": false }, "totalPages": 10, "totalElements": 999, "last": false, "size": 100, "number": 0, "sort": { "sorted": false, "unsorted": true, "empty": true }, "numberOfElements": 100, "first": true, "empty": false}我想將 JSON 屬性名稱(chēng)更改content為另一個(gè)名稱(chēng),例如"contacts". 我怎樣才能做到這一點(diǎn)?
1 回答

揚(yáng)帆大魚(yú)
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
通常你不能。因?yàn)镻age它c(diǎn)ontent與業(yè)務(wù)無(wú)關(guān)。因?yàn)镻age它所包含的是中性的。
但我認(rèn)為以下解決方法可以提供幫助。
您需要?jiǎng)?chuàng)建自定義頁(yè)面類(lèi)。
public class CustomPageImpl<T> extends PageImpl<T>{
@JsonProperty("contacts")
public List<T> getContent() {
return super.getContent();
}
}
然后使用這個(gè)自定義頁(yè)面類(lèi)返回結(jié)果。
添加回答
舉報(bào)
0/150
提交
取消