java和spring boot的新手。
在尝试序列化以下类时,
public class ActionItems {
private String APpID;
public String getAPpID() {
return APpID;
}
public void setAPpID(String aPpID) {
APpID = aPpID;
}
// other fields
}
将json字符串获取为
{
"appID": null,
}
同时,用decapitilize()交叉检查吸气剂名称,它与字段名称匹配。
Introspector.decapitalize("APpID") - gives "APpID"
从getter方法生成属性名称时,杰克逊是否使用一组不同的规则和方法吗?
PS:我知道,变量名应以小写开头。在遍历Java bean命名约定规范时遇到了这个问题。
我正在使用杰克逊2.9.3v。
PS:根据链接PropertyNamingStrategy,它应该产生APpID而不是appId对吗?
有人可以在这里提供一些输入吗?
谢谢。
答案 0 :(得分:1)
在Jackson中,您可以自定义PropertyNamingStrategy
,并且
在没有注册自定义策略的情况下,默认Java属性 使用命名策略,将字段名称保持不变,并删除 从方法中设置/获取/是前缀(以及小写的缩写 大写字母顺序)。
此外,您可以自定义属性名称,例如:
@JsonProperty("APpID") // produce {"APpID":"s"}
public String getAPpID() {
return APpID;
}