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