我使用相同的 Java POJO 类使用 Spring boot 实现了 2 组 rest API。我必须根据 API 返回不同的字段并为少数字段使用不同的名称。目前我正在为一组 API 使用 @JsonView。但我还需要为该@JsonView 提供不同的名称。例如:对于@JsonView,字段“host”需要命名为“ip”,而对于其他 API,字段“host”需要命名为“host”。我不确定如何根据@JsonView 映射不同的属性名称。
我检查了一些结果,比如使用 MixIns。但不确定如何在 Spring Boot Rest API 中进行操作,尤其是在方法级别。
public class Con {
@JsonView(View.ConInfo.class)
private String host;
private String name;
}
控制器方法:
@JsonView(View.ConInfo.class)
@GetMapping
public Con getConInfo() {}
@GetMapping("/raw")
public Con getCon() {}
预期:{"ip":"10xxx"} 用于 getConInfo API
{"host":"10xxx", "name":"con1"} 用于 getCon API。
实际:为 getConInfo API 获取 {"host":"10xxx"}