不工作下面是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
任何人都可以提供上述情況下所需的確切轉換策略嗎?