java - 使用 Jackson 库更改派生类的 JSON 属性名称

标签 java json spring jackson

我正在使用 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/

相关文章:

arrays - swift 4 : Decode array

javascript - 将 CoffeeScript 项目转换为 JavaScript(不缩小)?

java - Spring Tool Suite(Eclipse)项目运行问题

java - Spring Security OAuth2 和 Ldap 对同一资源进行身份验证

java - 使用全局异常处理程序在 SpringBoot 应用程序中处理 BindException

java - 列表值未显示更多行

java - 为了学习 CDI 我应该了解 EJB

java - 我们在 Guava 中有任何 api,我可以在其中创建以 hashmap 作为值的 hashmap

javascript - iOS获取js文件结果

java - 即使存在也无法找到具有 id 的实体