【发布时间】:2023-03-15 11:54:01
【问题描述】:
我继承了在 getter/setter 上有 @JsonProperty 注释的某个位代码。目的是当使用 Jackson 库序列化对象时,字段具有该特定名称。
当前代码:
private String fileName;
@JsonProperty("FILENAME")
public String getFileName()
{
return fileName;
}
@JsonProperty("FILENAME")
public void setFileName(String fileName)
{
this.fileName = fileName;
}
现在对于另一个工具,我还需要使用 JsonProperty 对字段进行注释。所以这将是我更改的代码:
@JsonProperty("FILENAME")
private String fileName;
@JsonProperty("FILENAME")
public String getFileName()
{
return fileName;
}
@JsonProperty("FILENAME")
public void setFileName(String fileName)
{
this.fileName = fileName;
}
是否有人在字段和 getter/setter 上都使用了相同的注释?我在网上四处张望,但没有看到任何东西。
我已经编译并运行了代码,但我不确定这是否会导致任何问题。对此有什么想法吗?
【问题讨论】:
-
事实上你不会有问题,因为除了设置值之外,你没有在设置器中做任何事情。但是,如果这种情况发生变化,我会担心杰克逊会使用哪一个;如果它选择了该字段,您可能不会得到您期望的行为。很遗憾,我无法为您找到按优先顺序排列的任何内容。
-
+1。是的,优先顺序会很有用,但它们当然不应该拥有不同的名称。
标签: java json serialization jackson