当前位置: 首页 > 知识库问答 >
问题:

Jackson没有用@JsonProperty重写Getter

何灼光
2023-03-14

JSONProperty没有重写jackson从getter获得的默认名称。如果我用ObjectMapper和jackson序列化下面的类,我会得到

{"hi":"hello"}

如您所见,JsonProperty注释不起作用

class JacksonTester {
    String hi;

    @JsonProperty("hello")
    public String getHi() {
        return hi;
    }
}   

@jsonproperty放在字符串本身也不起作用。我可以改变名字的唯一方法是重命名getter,唯一的问题是它的第一个字母总是小写的

共有1个答案

慕金林
2023-03-14

问题是我同时使用了旧的和新的jackson库

也就是说,在导入org.codehaus.jackson.annotate.jsonproperty之前,我必须将其改为,以便与我使用的库保持一致。

因为我使用的是maven,这也意味着更新我的maven依赖项。导入com.fasterxml.jackson.annotation.jsonproperty;

为了使它工作,我需要getter上的@jsonproperty注释(将它放在对象上不起作用)

我在这里找到了答案(多亏了francescoforesti)@JsonProperty没有按预期工作

 类似资料:
  • 我使用Jackson(2.1.1)进行JSON序列化/反序列化。我有一个带有JAXB注释的现有类。大多数注释都是正确的,可以像jackson一样使用。我使用mix-ins稍微改变这些类的反序列化/序列化。 在我的ObjectMapper构造函数中,我执行以下操作: 基于上述情况,由于内省者的顺序,Jackson注释优先于Jaxb。这是基于Jackson Jaxb文档的。对于我希望忽略的字段,将添加

  • 假设我有以下XML模型: 如果我将类以下约定重命名为: 这两种元素都是: 来自的XML 看起来像这样: 但我希望它看起来像这样: 我做错什么了吗?我看到我可以使用@JsonProperty,它可以工作,但只适用于字段,我觉得在XML元素上使用JsonProperty是错误的。我的模型类可以命名为CUSTOMER、PERSON、USER吗?或者我应该重命名它们吗?如果重命名它们更好,我应该使用Jso

  • 我开发了一个Spring Boot应用程序。该应用程序可以部署到测试或prod环境,该应用程序使用REST API发出请求。我使用POJO作为包装器,JsonProperty注释包含要推送到的API的字段ID。 ie 这些值的字段标签在测试endpoint上不同。因此,测试endpoint可能希望属性映射为 我希望能够利用Spring Boot对基于概要文件的属性文件的本机支持。在运行时从外部属性

  • Spring Boot应用程序的任务是每隔这么多分钟更新一次远程集成API。此应用程序可以部署到测试或prod环境中,通过“application.properties”标志通知应用程序应该查看的endpoint。POJO被Jackson序列化并推送到endpoint,JsonProperty注释包含它被推送到的API的字段ID。 ie 这些值的字段标签在测试endpoint上不同。因此,测试en

  • kotlin 1.2.10 Jackson-Module-kotlin:2.9.0 根据下面的答案,下面的工作对我来说

  • 问题内容: 我有一个看起来像这样的课: 而且我不想再创建10个类似的类,只是因为我只需要更改一行代码(在这种情况下为@JsonProperty(“ difficulties”))。该属性值取决于类型。可以在一堂课上写吗? 问题答案: 基于Jackson的响应-在运行时修改属性而无需 MichałZiober 进行注释,在这里,我可以通过重写PropertyNamingStrategy来更改默认字段