Ich möchte JSON-Eigenschaft und XML-Element mit dem gleichen Pojo mit benutzerdefinierten Namen zuordnen. Im Folgenden finden Sie Struktur meiner Anfrage Körper: Für XML:@XmlElement und @JsonProperty zusammen in demselben pojo
<TEST_REQUEST>
<CITY_NAME>abc</CITY_NAME>
<STATE_NAME>xyz</STATE_NAME>
</TEST_REQUEST>
Für Json: { "cityname": "abc", "state": "xyz"} ich unten Code verwendet, aber es funktioniert nicht. Kann jemand bitte vorschlagen, was in diesem Code Vielen Dank im Voraus
@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;
}
}
es funktioniert, wenn Sie Jackson direkt verwenden. Wie generierst du JSON? über? Und "nicht arbeiten" spricht eindeutig nichts über den Fehler aus. – ulab
@Ulab Wenn die Anfrage mit der XML-Payload beantwortet wird, werden die Werte in den jeweiligen Eigenschaften von POJO perfekt gefüllt, aber mit der Json-Payload werden die entsprechenden Eigenschaften nicht festgelegt. Im Fall von JSON wird folgender Fehler ausgegeben: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unbekanntes Feld "city" (Klasse com.apple.ist.aconline.qpmigration.qpws.entity.request.TestRequest), nicht als ignorierbar markiert (2 bekannte Eigenschaften: "CITY_NAME", "STATE_NAME"]). Dieses Szenario funktioniert jedoch auch, wenn die Json-Nutzlast in {"CITY_NAME" geändert wird: "abc", "STATE_NAME": "xyz"} –
Nicht erkanntes Feld "Stadt" ist nicht dasselbe wie "StadtName". Ist das ein Tippfehler? Sie müssen "cityName" wie in der Eigenschaft erwähnt verwenden. – ulab