我正在使用 Spring 开发新的 REST API,我有 BaseResponse
类作为所有响应的基本响应。此类包含属性 String requestUuid;
在某些情况下,此 requestUuid
必须使用属性名称 requestUuid
进行序列化,在其他情况下,它必须序列化为 request_uuid
,我知道我可以使用 @JsonProperty
作为字段级注释,但它会影响所有响应。有什么方法可以专门为每个派生类覆盖属性名称。
最佳答案
您可以在方法级别使用 @JsonProperty
。这样,您就可以在子类中覆盖该字段的 getter 方法并对其进行注释。
例如:
class BaseResponse {
private String requestUuid;
public getRequestUuid() {
return requestUuid;
}
}
class OtherResponse extends BaseResponse {
@Override
@JsonProperty("request_uuid")
public getRequestUuid() {
return super.getRequestUuid();
}
}
关于java - 使用 Jackson 库更改派生类的 JSON 属性名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49852325/