2
我想映射json屬性和xml元素使用自定義名稱相同的pojo。下面是我的要求車身結構: 對於XML:@XmlElement和@JsonProperty一起在同一pojo
<TEST_REQUEST>
<CITY_NAME>abc</CITY_NAME>
<STATE_NAME>xyz</STATE_NAME>
</TEST_REQUEST>
對JSON:{ 「的cityName」: 「ABC」, 「Statename的」: 「XYZ」} 我用下面的代碼,但它不工作。任何人都可以請建議此代碼有什麼問題,在此先感謝
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "TEST_REQUEST")
@JsonIgnoreProperties(ignoreUnknown = true)
public class TestRequest {
@XmlElement(name = "CITY_NAME")
@JsonProperty(value = "cityName")
private String city;
@JsonProperty(value = "stateName")
@XmlElement(name = "STATE_NAME")
private String state;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
它工作,如果你直接使用傑克遜。你如何生成JSON?通過?而「不工作」顯然不會引發任何有關錯誤的信息。 – ulab
@Ulab如果使用xml有效內容命中請求,則POJO的相應屬性中的值將完美填充,但使用json有效內容時,它不會設置相應的屬性。在JSON的情況下,它會拋出錯誤:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:無法識別的字段「city」(com.apple.ist.aconline.qpmigration.qpws.entity.request.TestRequest類),未標記爲可忽略(2個已知屬性:「CITY_NAME」,「STATE_NAME」])。但是,如果json有效內容更改爲{「CITY_NAME」:「abc」,「STATE_NAME」:「xyz」},則此場景也可以正常工作。 –
無法識別的字段「city」與「cityName」不同。這是錯誤的錯誤?您必須使用屬性中提到的「cityName」。 – ulab