gpt4 book ai didi

java - @JsonProperty 何时重命名对象字段?

转载 作者:行者123 更新时间:2023-11-29 06:48:23 26 4
gpt4 key购买 nike

@Data
public class Tests {
@JsonProperty("comment")
private String notes;
}

我知道如何使用@JsonProperty 将字段重命名为另一个名称,但它什么时候重命名对象字段?例如,notes 被重命名为 comment。我尝试阅读源代码,发现com.fasterxml.jackson.databind.ser.std.BeanSerializerBase#serializeFieldscom.fasterxml.jackson.databind中有一些相关代码。 ser.BeanPropertyWriter#serializeAsField。但是该字段已经重命名为comment。那么@JsonProperty在哪里重命名对象字段呢?

最佳答案

属性名称解析发生在 com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector 中看看这个片段:

public PropertyName findNameForDeserialization(Annotated a) {
...
// Get JsonProperty value for the field
JsonProperty pann = (JsonProperty)this._findAnnotation(a, JsonProperty.class);
if (pann != null) {
// here we are !!!
return PropertyName.construct(pann.value());
} else {
return !useDefault && !this._hasOneOf(a, ANNOTATIONS_TO_INFER_DESER) ? null : PropertyName.USE_DEFAULT;
}
}

所有这一切都发生在 POJOPropertiesCollector.collectAll()

关于java - @JsonProperty 何时重命名对象字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58004614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com