gpt4 book ai didi

java - 如何更改 ResponseEntity 中的 JSON 响应格式?

转载 作者:行者123 更新时间:2023-11-30 01:50:18 25 4
gpt4 key购买 nike

我有一些 REST Controller ,它可以生成对用户的响应并将其发送。

  @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);
}

发送响应后,用户获得以下格式的 JSON 响应:

{
"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 属性名称 content 更改为其他名称,例如 "contacts"。我怎样才能做到这一点?

最佳答案

一般来说你不能。因为Page内容并且与业务无关。对于 Page 来说,它所包含的内容是中性的。
但我认为以下解决方法可以提供帮助。
您需要创建一个自定义页面类。

public class CustomPageImpl<T> extends PageImpl<T>{
@JsonProperty("contacts")
public List<T> getContent() {
return super.getContent();
}
}

然后使用这个自定义页面类返回结果。

关于java - 如何更改 ResponseEntity 中的 JSON 响应格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56313938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com