我有2套其余的API,它们使用相同的Java POJO类通过Spring boot实现。我必须基于API返回不同的字段,并为几个字段使用不同的名称。目前,我正在为一组API使用@JsonView。但是我还需要为@JsonView命名不同的名称。例如:对于@JsonView,字段“主机”需要命名为“ ip”,对于其他API,则必须将其命名为“主机”。我不确定如何根据@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”} for getConInfo API
{{host“:” 10xxx“,” name“:” con1“}对于getCon API。
实际:为getConInfo API获取{“ host”:“ 10xxx”}
您可以尝试将@JsonView
批注放置在吸气剂上。
但是,由于您似乎需要不同的有效负载,因此建议您使用不同的类来表示每个有效负载。