更改由 CollectionModel 创建的 json 响应中的单词 'content'

Change word 'content' in json response created by CollectionModel

我想知道是否可以更改 JSON 响应中的 'content' 一词。 CollectionModel 正在创建链接和内容。 JSON 示例:

{
    "links": [],
    "content": [
        {
            "id": 1,
            "name": "Pontar",
            "ownerName": "Pontar",
            "country": "Australia",
            "dateCreated": "28-09-2015"
        },
        {
            "id": 193074,
            "name": "Agri",
            "ownerName": "Agri",
            "country": "Mexico",
            "dateCreated": "28-08-2016"
        }
    ]
}

创建此响应的方法:

@GetMapping
public ResponseEntity<CollectionModel<FarmListDto>> getAllActiveFarms() {
    List<Farm> farms = farmsService.findActiveFarms();
    List<FarmListDto> dtoList = FarmListMapper.INSTANCE.map(farms);

    return ResponseEntity.ok(new CollectionModel<FarmListDto>(dtoList));
}

提前致谢。

ResponseEntity 确实从您的 java 对象序列化,通常,它由某些库(例如 jackson)发生。有更改 属性 名称声明性的现成解决方案。例如:

@JsonProperty("contentList")
private List<...>content;

如果您使用 jackson 只需使用上面的代码。否则尝试使用反序列化库找到类似的解决方案。