JsonProperty没有覆盖杰克逊从getter获取的默认名称.如果我用ObjectMapper和jackson序列化下面的类,我得到了
{"hi":"hello"}
如您所见,JsonProperty注释无效
class JacksonTester { String hi; @JsonProperty("hello") public String getHi() { return hi; } }
将@JsonProperty放在String本身上也不起作用.我似乎可以更改名称的唯一方法是重命名getter,唯一的问题是它的第一个字母总是小写
解决方法
问题是我正在使用旧的和新的杰克逊库
即在我之前
import org.codehaus.jackson.annotate.JsonProperty;
我必须改为以下,以便与我使用的库保持一致.
因为我使用maven也意味着更新我的maven依赖项.
import com.fasterxml.jackson.annotation.JsonProperty;
为了它的工作,我需要在getter上的@JsonProperty注释(把它放在对象上不起作用)
我在这里找到答案(感谢francescoforesti)
@JsonProperty not working as expected