我正在使用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();
    }
}

10-04 10:40