不工作下面是wsimport生成的类 - 我试图从COM转换成字符串转换为使用ObjectMapper上面的类的对象的wsimport产生的吸气剂ObjectMapper
public class UpdateProposalRequest {
protected ObjProposalData oProposalData;
public ObjProposalData getOProposalData() {
return oProposalData;
}
public void setOProposalData(ObjProposalData value) {
this.oProposalData = value;
}
}
- (注意吸气名getOProposalData()
) .fasterxml.jackson.core(杰克逊 - 数据绑定) -
private ObjectMapper mapper = new ObjectMapper();
UpdateProposalRequest requestObject = mapper.readValue(requestStr, UpdateProposalRequest.class);
requestStr由具有以下JSON -
{
"oProposalData": {
.
.
.
}
}
当我运行该应用程序时,它抛出以下异常 - (注 - 著名的属性名称 - oproposalData
) -
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "oProposalData" (class co.xxx.service.updateproposal.UpdateProposalRequest), not marked as ignorable (one known property: "oproposalData"])
了一下头刮伤我想这个问题是从的wsimport产生的吸气名后。如果我将其更改为getoProposalData()
,则不会抛出上述异常。
下面是2个解决方法我能想到的问题 -
对于每一个getter方法,添加下面的注释为ObjectMapper挑选正确的字段名称 -
@JsonProperty("oProposalData")
在用wsimport生成类文件后,使用像eclipse这样的IDE来自动生成getter和setter。 (Eclipse将生成具有匹配ObjectMapper格式的适当格式的getter)。
这些方法的问题是我有几百个这样的类文件有多个字段。因此,手动添加注释或生成getter和setter会花费很多时间。此外,对WSDL文件的任何小改动都会导致重新生成类文件,并再次手动更改getter名称。
有没有办法在生成类文件时控制getter/setter名称格式?
或者是否有一种方法可以在调用readValue/writeValue的同时向ObjectMapper提供getter格式?
更新 -
我发现,通过扩展PropertyNamingStrategy
,我们将能够提供我们自己的变频战略。但我无法为上述情况获得转换权。链接 - Link
任何人都可以提供上述情况下所需的确切转换策略吗?